【发布时间】:2016-08-08 15:02:31
【问题描述】:
我在 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 name = "David",该行
myRequest.predicate = NSPredicate(format: "name = %@", "David")
没有找到这些条目,因为“名称”在我的模型中是一个可选属性。
我是否必须搜索 Optional("David"),意思是 myRequest.predicate = NSPredicate(format: "name = %@", Optional("David"))?
如何在我的模型中搜索名称为“David”的所有条目?我做错了什么?
感谢您的帮助!
【问题讨论】:
-
不确定,但将
name作为可选属性是不相关的。 Swift 的可选项与 Core Data 的可选项属性不同。 -
文字语法
NSPredicate(format: "name = 'David'")是否有效?
标签: ios swift core-data nsfetchrequest