【发布时间】:2018-02-12 12:27:05
【问题描述】:
我需要在从核心数据数组返回的对象中使用哪个谓词:
- 第一个对象必须完全匹配;
- 其他对象必须只包含特定的单词;
例如: 我有实体人(名字:字符串,姓氏:字符串)。 比方说,我在核心数据中有这个对象: 1) 男人(名字:“John”,第二名字:“Alexandrov”),2) 男人(名字:“Alex”,第二名字:“Kombarov”),3) 男人(名字:“Felps”,第二名字:“Alexan”) .
在返回的 arr 中我想看到 [Man(firstName: "Alex", secondName: "Kombarov"), Man(firstName: "Felps", secondName: "Alexan"), Man(firstName: "John", secondName: "Alexandrov")]
我怎样才能做到这一点?
【问题讨论】:
-
您要过滤数据还是排序?谓词只能实现前者。
-
@pbasdf,你的意思是我只能按随机顺序获取对象,我不能在获取请求中将它们排序到特定的顺序?
-
要在获取结果时对结果进行排序,必须使用 NSSortDescriptor(而不是 NSPredicate)。但是CoreData 有很大的限制:一个fetch 请求只能根据一个属性值(或一对一关系的属性)进行排序。如果您想要更复杂的排序顺序,则需要对 fetch 请求返回的数组进行排序。
标签: swift core-data nspredicate