当前位置 : 主页 > 手机开发 > ios >

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

来源:互联网 收集:自由互联 发布时间:2021-06-11
我遇到了 Swift中的以下问题. 我编写了以下函数来检索模型中名为“David”的所有人. private func myFetchRequest(){ let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext let my
我遇到了 Swift中的以下问题.

我编写了以下函数来检索模型中名为“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")
网友评论