【发布时间】:2016-03-02 17:02:47
【问题描述】:
我需要通过存储如下 NSArray 的二进制数据属性来过滤实体
NSArray *myArray = @[@{'description':'tag1'},
@{'description':'tag2'}]
并且Entity属性存储为NSKeyedArchiver:
self.tags = [NSKeyedArchiver archivedDataWithRootObject:myArray];
是否可以创建一个 NSPredicate 来帮助我过滤它?
我尝试过使用tags contains[cd] 'tag1',但它没有运行。
【问题讨论】:
-
正如 Tom 所写,您可以使用等式运算符(>、== 和
!=对二进制 blob 意味着什么真的很有用。当然,最好的选择是将标签存储为正确的多对多关系,而不是将它们填充到一个 blob 中。 -
@Avi,我的问题是我现在无法更改模型。所以我必须与这个麻烦作斗争。但是当我对 Tom 发表评论时,我将尝试使用
NSPredicate predicateWithBlock:和NSArray filteredArrayUsingPredicate:过滤我的实体,我可以在其中定义条件以检查对象是否必须在我的结果中。
标签: ios objective-c core-data nspredicate