Swift: 在核心数据模型中搜索字符串

Swift: Search for string in core data model

我在 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")

找不到这些条目,因为 "name" 是我模型中的可选属性。 我是否必须搜索 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")