Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios FilteredarrayingPredicate使用可变数组填充数组_Ios_Objective C - Fatal编程技术网

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请参见编辑。如果有帮助,请告诉我。