代码之家  ›  专栏  ›  技术社区  ›  petert

使用filteredarrayusingpredicate始终返回核心数据提取对象的空数组

  •  3
  • petert  · 技术社区  · 16 年前

    我尝试使用nsarray的filteredarrayusingpredicate:方法来筛选核心数据管理对象数组。下面是一个大纲:

    NSArray *array = self.fetchedResultsController.fetchedObjects;
    
    NSPredicate *predicate = [NSPredicate
                              predicateWithFormat:@"name contains[c] %@", searchString];
    
    NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
    

    这总是返回空的“filteredarray”?我猜这是我的谓词,但我知道“array”中的对象是带有一个名为“name”的键的托管对象。“searchString”的值正常,我以前运行过performfetch:before。

    1 回复  |  直到 16 年前
        1
  •  6
  •   gerry3    16 年前

    你的谓词没问题。

    我会仔细检查数组和搜索字符串:

    NSArray *array = self.fetchedResultsController.fetchedObjects;
    
    NSLog(@"array = %@",array);
    NSLog(@"array count = %d",[array count]);
    NSLog(@"searchString = %@",searchString);
    
    NSPredicate *predicate = [NSPredicate
                              predicateWithFormat:@"name contains[c] %@", searchString];
    
    NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];