iphone:[NSNull getCharacters:]:使用NSPredicate无法识别的选择器错误

时间:2016-01-07 19:28:44

标签: ios objective-c core-data

当我尝试在某些字段的核心数据中搜索实体时,我收到以下错误:

[NSNull getCharacters:]: unrecognized selector sent to instance

这是我用来设置谓词的代码:

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

但是,当我将谓词设置为我知道在其他字段上为true时,搜索正常:

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

第一个版本在标题字段/属性上搜索,第二个在jobtitle字段/属性上搜索。

检查模型中的属性作业和作业标题,我无法辨别它们之间的任何差异。

有人能告诉我NSNull的来源和含义吗?可能会在属性的属性中遗漏一些会导致这个问题吗?

提前感谢任何建议。

1 个答案:

答案 0 :(得分:1)

看起来getContacts数组中的对象在第一种方法中没有jobtitle属性。您可以通过打印第一个对象NSLog(@"%@", getContacts.firstObject)或打印整个数组NSLog(@"%@", getContacts)

来检查它