如何在遍历完整的NSManagedObject时应用谓词?

时间:2017-08-20 19:51:46

标签: swift sqlite core-data nspredicate nsmanagedobject

我尝试使用已在上下文中完成的NSManagedObject遍历多对多关系时应用谓词。我想过将这个集合作为一个数组然后应用一个过滤算法,但这会引发一堆我不想要的错误,因为该集合中可能有500多个对象。是否有可能在通过NSSet访问此NSManagedObject个错误时,我可以对该集合应用谓词或过滤器,并且只能解决这些错误?

2 个答案:

答案 0 :(得分:1)

过滤关系中的对象是正确的。 比单独提取更有效率。我从个人经验中了解到这一点,关系大小在同一个球场(100-2000个实体),并且发现在进行另一次获取与过滤关系之间的速度差异大约是10倍。

答案 1 :(得分:0)

而不是过滤集objectA.b,而是使用反向关系上的获取谓词来获取B

NSPredicate(format: "a == %@ AND …", objectA) // to-one

NSPredicate(format: "a CONTAINS %@ AND …", objectA) // to-many