filteredArrayUsingPredicate不工作

stu*_*art 1 iphone nsmutablearray nspredicate

我正在尝试使用filteredArrayUsingPredicate与从.plist文件中的数据构建的数组.不知怎的,它似乎永远不会过滤我的数组.

这就是我的数组的构建方式:

    DrillDownAppAppDelegate *AppDelegate = (DrillDownAppAppDelegate *)[[UIApplication sharedApplication] delegate];
    self.tableDataSource = [AppDelegate.data objectForKey:@"Rows"];
    copyDataSource = [ tableDataSource mutableCopy];
Run Code Online (Sandbox Code Playgroud)

然后我的谓词是这样的,

NSString *searchFor = search.text;
[tableDataSource release];
tableDataSource = [copyDataSource mutableCopy];
if ([searchFor length] > 0) {
NSLog(@"array = %@",tableDataSource);
NSPredicate *pred = [NSPredicate predicateWithFormat:@"Self beginswith[c] %@",searchFor];
    [tableDataSource filteredArrayUsingPredicate:pred];
}
Run Code Online (Sandbox Code Playgroud)

Geo*_*che 6

  • -[NSArray filteredArrayUsingPredicate:]返回包含结果的新数组
  • -[NSMutableArray filterUsingPredicate:] 就地过滤.

所以请使用以下代码:

[tableDataSource filterUsingPredicate:pred];
Run Code Online (Sandbox Code Playgroud)