我遇到了 Swift中的以下问题. 我编写了以下函数来检索模型中名为“David”的所有人. private func myFetchRequest(){ let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext let my
我编写了以下函数来检索模型中名为“David”的所有人.
private func myFetchRequest() { let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext let myRequest = NSFetchRequest(entityName: "RegisterOfPersons") myRequest.predicate = NSPredicate(format: "name = %@", "David") do{ let results = try moc.executeFetchRequest(myRequest) for result in results { print(result) } } catch let error{ print(error) } }
即使我的模型包含两个属性名称为“David”的条目,该行也是如此
myRequest.predicate = NSPredicate(format: "name = %@", "David")
找不到这些条目,因为“name”是我模型中的可选属性.
我是否必须搜索Optional(“David”),意思是myRequest.predicate = NSPredicate(格式:“name =%@”,Optional(“David”))?
如何在模型中搜索名为“David”的所有条目?我究竟做错了什么?
谢谢你的帮助!
您使用字符串进行谓词,因此请将您的比较名称与单引号括起来myRequest.predicate = NSPredicate(format: "name = '%@'", "David")
也尝试使用Contains
myRequest.predicate = NSPredicate(format: "name CONTAINS[cd] %@", "David")