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

Ios iphone:[NSNull getCharacters:]:使用NSPredicate时出现无法识别的选择器错误,ios,objective-c,core-data,Ios,Objective C,Core Data,嗨,当我尝试在某些字段的核心数据中搜索实体时,我得到以下错误: [NSNull getCharacters:]: unrecognized selector sent to instance 这是我用来设置谓词的代码: - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope { NSPredicate *resultPredicate =[NSPredicate predicateW

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

[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];
}
第一个版本搜索标题字段/属性,第二个版本搜索作业标题字段/属性

检查模型中的job和jobtitle属性,我看不出它们之间有什么区别

谁能告诉我NSNull来自何处以及它的含义?属性的属性中是否有我遗漏的东西可以解释这一点


提前感谢您的建议。

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

来检查它。我想您是对的。我刚刚意识到我正在搜索的getContacts对象是错误的对象——它不是MOC中的所有联系人,而是先前为相关但略有不同的目的而获得的一组联系人。包含NSFetchedResultsController捕获的所有内容的对象是什么。记录getContacts数组显示title和jobtitle都有值为nil的对象:即:jobtitle=\“\”\n标题=\“\”\nIs
getContacts
执行
NSFetchRequest
的结果?它是否碰巧将其
resultType
设置为
NSDictionaryResultType