我的核心数据实体中有一些属性,例如
- 名字
- 年龄
- 地址
但这里的地址是一个NSDictionay(包含城市,州,邮政编码等)。现在,我想搜索该实体中的数据。
这是我正在使用的代码
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(name
CONTAINS[cd] $string) OR (age CONTAINS[cd] $string) OR (address.city CONTAINS[cd] $string) OR (address.state CONTAINS[cd] $string) OR (address.streetOne CONTAINS[cd] $string) OR (address.zip CONTAINS[cd] $string) OR (address.county CONTAINS[cd] $string)"];但是由于NSDictionary元素,我遇到了错误。 请告诉我当实体属性包含字典以及其他属性时要使用的确切搜索查询是什么..?
没有一个 - 你不能这样做。如果要存储字典,则该属性是可转换的,并存储为二进制数据。不能谓词为二进制数据。
相反,您应该创建一个地址实体并向其添加关系。现在,您的谓词将起作用,因为它将遍历关系。
如果您保留字典,则需要为"候选"匹配项进行谓词,然后在候选项加载到内存中(并且二进制数据解压缩)时执行另一个过滤器。