iPhone 谓词错误无法在搜索中对集合使用 in/contains 运算符

iPhone Predicate error Can't use in/contains operator with collection in search

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

Can't use in/contains operator with collection FIRST (not a collection)

这是代码。

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

并不是所有的记录都有 first 指的是名字。可能是 first 的空值导致了错误吗?如果是这样,我将如何允许空值?

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

看起来 FIRST 被解释为聚合操作。尝试将其更改为 firstName。这将使 coredata 和你未来的自己更清楚(将来某个时候你可能会添加一个带有 firstLine 的地址作为街道地址,这可能会造成混淆)