swift4.0

swift coredata 数据库

2018-04-24  本文已影响63人  279cb620c509


参考https://www.jianshu.com/p/6541b45ee991、https://blog.csdn.net/yamingwu/article/details/42297675

综合以上两篇文章,对swift coredata 数据库iOS10以前及iOS9的适配

swift4.0编译通过

给上demoGitHub - yuntiaoOS/coreDataTest

  overridefuncviewDidLoad() {

        super.viewDidLoad()

        letworkerName ="Frank"

        let workerFetch: NSFetchRequest = Worker.fetchRequest()

        workerFetch.predicate=NSPredicate(format:"%K == %@",#keyPath(Worker.name),workerName)

         letfetchRequest =NSFetchRequest(entityName:"Worker")

        do{

            letresults =trymanagedContext.fetch(fetchRequest)as? [NSManagedObject]

//            for val in results! {

//                managedContext.delete(val)

//            }

//            try managedContext.save()

            if((results?.count)! - 1) > 0 {

                //                this person have found

                currentWorker= results?.firstas!Worker

            }else{

                //                this person have not found, so create this person's name as the ID

                if#available(iOS10.0, *) {

                    currentWorker=Worker(context:managedContext)

                }else{

                    currentWorker = coreDataStack.createNewItemWithName(name:"Worker") as? Worker

                }

                currentWorker?.name= workerName

                currentWorker?.avatar = UIImagePNGRepresentation(UIImage.init(named: "attendance_hands")!) as! NSData

                trymanagedContext.save()

            }

        }catchleterrorasNSError{

            debugPrint("ViewController Fetch error:\(error), description:\(error.userInfo)")

        }

    }

上一篇下一篇

猜你喜欢

热点阅读