对于联系人的搜索栏,我使用NSPredicate
来过滤结果。我在其他实体上使用完全相同的代码而没有问题。但是,当我在这个实体上使用它时,它会返回错误:
不能在集合FIRST(不是集合)中使用/ contains运算符
这是代码。
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"first contains[c] %@", searchText];
searchResults = [getContacts filteredArrayUsingPredicate:resultPredicate];
}
并非所有记录都首先引用名字。可能是第一个空值导致错误吗?如果是这样,我将如何允许空值?
或者,还有什么可能导致此错误?
答案 0 :(得分:1)
看起来FIRST被解释为聚合操作。尝试将其更改为firstName。这将使coredata以及您未来的自我更加清晰(未来某个时候您可能会在街道地址添加firstLine地址,这可能令人困惑)