我需要使用哪个谓词来自Core Data数组返回的对象:
-
第一个对象必须完全匹配;
-
其他对象必须包含特定的单词;
例如:我有实体Man(firstName:String,lastName:String) . 让我们说,我在核心数据中有这些对象:1)Man(firstName:“John”,secondName:“Alexandrov”),2)Man(firstName:“Alex”,secondName:“Kombarov”),3)Man(firstName) :“Felps”,secondName:“Alexan”) .
并且在返回的arr中我想看到[Man(firstName:“Alex”,secondName:“Kombarov”),Man(firstName:“Felps”,secondName:“Alexan”),Man(firstName:“John”,secondName:“亚历山德罗夫“)]
我怎么能做到这一点?
1 回答
你可以使用
NSCompoundPredicate
.首先,你要为
firstName
创建一个谓词 . 这个是严格的,所以你要使用==
搜索匹配:然后,您将为
lastName
创建谓词 . 这个不太严格,所以你要使用CONTAINS
:然后,您将使用
orPredicateWithSubpredicates
签名创建NSCompoundPredicate .从那里,您可以创建
NSFetchRequest
并将compoundPredicate
指定为fetchRequest
的谓词 .如果要对结果进行排序,可以在
NSFetchRequest
中添加一个或多个NSSortDescriptor
:然后,你做了获取:
这是
NSPredicate
的链接NSPredicate