ios - 谓词格式 :argumentArray: Using Only First item in NSArray

标签 ios core-data nspredicate nsfetchedresultscontroller

我正在为我的核心数据模型编写一个 fetchedResultsController,并且我对仅使用 argumentArray 中的一项的谓词有疑问。如果数组有 3 个项目,它将打印出:NOT unique == "16C0629D-F8B6-4DF3-9AAD-820821B6D325" 并且只搜索第一个项目。

我完整的 fetchedResultsController 代码如下。我搜索了很多,但似乎找不到关于我正在使用的方法的太多讨论。任何帮助表示赞赏。谢谢!

- (void)setupFetchedResultsController
{
  NSMutableArray *opponentUniques = [NSMutableArray array];
  for (Opponent *opponent in self.opponentArray) {
    [opponentUniques addObject:opponent.personUnique];
  }
  NSPredicate *searchPredicate = nil;
  if ([opponentUniques count] > 0) {
      searchPredicate = [NSPredicate predicateWithFormat:@"!(unique == %@)" argumentArray:opponentUniques];
  }

  NSFetchRequest *allPeople = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
  allPeople.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]];
  allPeople.predicate = searchPredicate;
  self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:allPeople
                                                                    managedObjectContext:self.managedObjectContext
                                                                      sectionNameKeyPath:nil
                                                                               cacheName:nil];
}

最佳答案

可能这会起作用:[NSPredicate predicateWithFormat:@"NOT (self.unique IN %@)", opponentUniques]

关于ios - 谓词格式 :argumentArray: Using Only First item in NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15989555/

相关文章:

iOS 未经授权允许不同的屏幕方向

cocoa - 实现版本的问题

iOS NSPredicate 上的深度对多关系

iphone - 使用 NSPredicate contains 查找 coredata 实体字段内的字符

ios - 使用 SDWebImage 时表格 View 滚动滞后

c# - 将 "SetTitleTextAttributes"应用于后推按钮

ios - Swift - 添加 Parse 后架构 x86_64 的 undefined symbol

ios - 对象映射器/核心数据,对象映射器 nil 值字段

swift - 为什么我的 NSPredicate 可以过滤一个实体属性而不是另一个?

ios - NSPredicate:如何将字符串视为数字?