iPhone Predicate错误无法在搜索中使用带/集合的运算符

时间:2016-01-06 22:27:53

标签: ios objective-c nspredicate

对于联系人的搜索栏,我使用NSPredicate来过滤结果。我在其他实体上使用完全相同的代码而没有问题。但是,当我在这个实体上使用它时,它会返回错误:

  

不能在集合FIRST(不是集合)中使用/ contains运算符

这是代码。

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"first contains[c] %@", searchText];
    searchResults = [getContacts filteredArrayUsingPredicate:resultPredicate];
}

并非所有记录都首先引用名字。可能是第一个空值导致错误吗?如果是这样,我将如何允许空值?

或者,还有什么可能导致此错误?

1 个答案:

答案 0 :(得分:1)

看起来FIRST被解释为聚合操作。尝试将其更改为firstName。这将使coredata以及您未来的自我更加清晰(未来某个时候您可能会在街道地址添加firstLine地址,这可能令人困惑)