如何检查核心数据是否为空
发布时间:2020-12-14 02:29:41 所属栏目:百科 来源:网络整理
导读:如何使用 swift检查核心数据是否为空.我试过这个方法: var people = [NSManagedObject]()if people == nil {} 但这会导致此错误 “binary operator ‘==’ cannot be applied to operands of type [NSManagedObject] and nil” 要检查核心数据库是否为空,您
如何使用
swift检查核心数据是否为空.我试过这个方法:
var people = [NSManagedObject]() if people == nil { } 但这会导致此错误
要检查核心数据库是否为空,您必须在要检查的实体上进行NSFetchRequest,并检查请求的结果是否为空.
您可以使用此功能进行检查: func entityIsEmpty(entity: String) -> Bool { var appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate var context = NSManagedObjectContext() var request = NSFetchRequest(entityName: entity) var error = NSErrorPointer() var results:NSArray? = self.context.executeFetchRequest(request,error: error) if let res = results { if res.count == 0 { return true } else { return false } } else { println("Error: (error.debugDescription)") return true } } 或简化和更短的解决方案:(使用.countForFetchRequest) func entityIsEmpty(entity: String) -> Bool { var appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate var context = NSManagedObjectContext() var request = NSFetchRequest(entityName: entity) var error = NSErrorPointer() var results:NSArray? = self.context.executeFetchRequest(request,error: error) var count = context.countForFetchRequest(request,error: error) if error != nil { println("Error: (error.debugDescription)") return true } else { if count == 0 { return true } else { return false } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |