背景:
我有一组数据,每个数据都有一个名为“type”的属性。 “type”是一个String值数组,如:
data1 = {"type": ["car", "truck", "plane"]}
在核心数据中,我将“type”存储为Transformable
需要:
现在,我需要通过检查给定数组中是否有“type”包含ANY值来过滤这些数据,例如:
["pickup", "plane"]
所以,上一节中的data1应该是合格的。
问题:
任何人都可以帮我找出一个可行的NSPredicate来获得我想要的东西吗?
我试过“CONTAINS”,“SUBQUERY”,但没有一个能奏效。
非常感谢!!
答案 0 :(得分:1)
没有这样的谓词。您不能将可转换值用作谓词的一部分,除非(可能)如果您要检查相等性。也就是说,如果您有一个数组并对其进行了转换,那么您应该能够过滤具有该确切值的对象。
转换后的值是一系列字节,在iOS应用中由NSData
的实例表示。此字节blob没有设置成员资格或任何其他更高级别含义的指示。它只是一点点。即使你改变了你的滤波器阵列,也不能保证它会匹配那些字节的子部分。
如果您需要进行此类过滤,则需要重新考虑如何保存数据。理想情况下,您有一个名为Type
的单独实体,您可以在其中保存类型名称,并且具有从当前实体到Type
实体的多对多关系。