如何使用NSPredicate过滤包含NSMetadataitems的对象数组

时间:2015-09-16 16:51:39

标签: ios nspredicate

我上课了。让我们称之为MyObject课程。 MyObject有一个名为item的属性NSMetadataItem

NSMetadataItem有一个名为NSMetadataItemFSNameKey的属性,可以通过以下方式获取:

NSString *fileName = [myMetadataItem valueForAttribute: NSMetadataItemFSNameKey];

现在我有一个数组或MyObjects我希望找到哪个对象有NSMetadataItemFSNameKey是我正在寻找的项目。

好的,我可以使用以下代码遍历数组:

  for (MyObject *oneObj in array) {
    NSString *oneFileName = [oneObj.item valueForAttribute:NSMetadataItemFSNameKey];
    if ([oneFileName isEqualToString:fileNameItem]) {
      // found, do something
    }
  }

但我试图找到是否可以使用NSPredicates和过滤?

来实现

这可能吗?

1 个答案:

答案 0 :(得分:2)

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"item.%K = %@", NSMetadataItemFSNameKey, fileNameItem];
NSArray *filteresArray = [array filteredArrayUsingPredicate:predicate];

输入Safari。