如何在 CoreData 中为包含 NSArray 的二进制数据创建 NSPredicate?

How to create a NSPredicate for a Binary data containing a NSArray in CoreData?

我需要通过存储 NSArray 的二进制数据 属性 过滤实体,如下所示

NSArray *myArray = @[@{'description':'tag1'},
                     @{'description':'tag2'}]

实体 属性 存储为 NSKeyedArchiver:

self.tags = [NSKeyedArchiver archivedDataWithRootObject:myArray];

是否可以创建一个 NSPredicate 来帮助我过滤它?

我试过 tags contains[cd] 'tag1' 但它没有 运行。

您不能使用谓词根据二进制属性进行过滤。至少,NSPredicate 不会帮助你,Core Data 中的任何东西也不会。如果它是一个 == 谓词,那么它可能会起作用。除此之外,您 可能 能够找到在过滤器中使用的正确位模式,但您必须根据一些独立研究自己计算出这些位。不过,作为一般规则,Core Data 二进制属性对谓词没有用。