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标题=\“\”\nIsgetContacts
执行NSFetchRequest
的结果?它是否碰巧将其resultType
设置为NSDictionaryResultType
?