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 的地址作为街道地址,这可能会造成混淆)
对于联系人搜索栏,我使用 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 的地址作为街道地址,这可能会造成混淆)