Ios FilteredarrayingPredicate使用可变数组填充数组
我有一个运行时错误发生在这行代码中:Ios FilteredarrayingPredicate使用可变数组填充数组,ios,objective-c,Ios,Objective C,我有一个运行时错误发生在这行代码中: _searchresults = [_beerNames filteredArrayUsingPredicate:resultPredicate]; serchresuls是一个无阵列对象 beerNames是一个NSArray M 196对象 结果谓词是一个非比较谓词,我真的不明白这意味着什么 下面是我的结果谓词代码 NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"nam
_searchresults = [_beerNames filteredArrayUsingPredicate:resultPredicate];
serchresuls是一个无阵列对象
beerNames是一个NSArray M 196对象
结果谓词是一个非比较谓词,我真的不明白这意味着什么
下面是我的结果谓词代码
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText];
searchText是一个NSCF字符串,但在程序崩溃之前,它只填充了一个字母
它给我的错误是:
NSCFString 0x8cbce80>valueForUndefinedKey::此类不符合密钥名称的键值编码
有什么想法吗?我给你写了一个简单的例子: 人员*a=[人员新]; a、 name=@a; a、 数字=@200; a、 年龄=31岁
Person *b = [Person new];
b.name = @"b";
b.number = @"300";
b.age = 21;
Person *c = [Person new];
c.name = @"c";
c.number = @"100";
c.age = 11;
NSArray *arr = @[a,b,c];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(name like[cd] %@) AND (age > %i)",@"b", 10];
arr = [arr filteredArrayUsingPredicate:predicate];
玩它。
有关谓词的语法,您可以在此处查看:
例如,在我的示例中,cd表示它不区分大小写和变音符号,如“如果\u beerNames是一个包含具有name属性的对象的数组,则谓词将起作用。但是您有一个字符串数组,因此谓词应该是
[NSPredicate predicateWithFormat:@"self CONTAINS[c] %@", searchText]
用self代替name。你的谓词是什么?@CrimsonChris请参见编辑。如果有帮助,请告诉我。