我在Swift中遇到以下问题。
我编写了以下函数,以使用name
“ 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)
}
}
即使我的模型包含两个attribute
名称为“ David”的条目,该行
myRequest.predicate = NSPredicate(format: "name = %@", "David")
找不到这些条目,因为在我的模型中“名称”是可选属性。我是否需要搜索Optional(“ David”),意思是类似的东西myRequest.predicate = NSPredicate(format: "name = %@", Optional("David"))
?
如何在模型中搜索名称为“ David”的所有条目?我究竟做错了什么?
谢谢你的帮助!
您正在使用谓词,string
因此将比较名称用单引号括起来
myRequest.predicate = NSPredicate(format: "name = '%@'", "David")
也可以尝试 Contains
myRequest.predicate = NSPredicate(format: "name CONTAINS[cd] %@", "David")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句