谓词和不同的对象

时间:2010-08-04 12:15:29

标签: objective-c core-data predicate nsfetchedresultscontroller

我有实体UnitTag,每个都与其他实体有很多关系。

我正在使用NSFetchedResultsController来管理数据。我需要的是将条件Unit的不同NSFetchedResultsController对象返回Tag.show == YES。我不确定如何将所有这些都提供给NSFetchedResultsController。将实体设置为UnitTag,如何为其构建谓词。

示例:

我有6个Tag个对象tag1...tag6和3个单位对象unit1, unit2, unit3。 tag1,tag2指向unit1,tag3,tag4指向unit2。 tag1 ... tag4符合show == YES条件。 所以我想最终将uni1和unit2变成NSFetchedResultsController

2 个答案:

答案 0 :(得分:2)

使用谓词Unit"ANY Tag.show==YES"实体进行抓取。

这将返回具有一个或多个相关Unit个实例且Tag的{​​{1}}个实例。 Fetches返回不同的对象,因此您不必执行任何其他操作。

答案 1 :(得分:0)

我在我的一个问题上试过这个。

如果NSMutableArray填充了RSSItem对象,其中包含属性链接,这是一个NSString。

现在我想找到数组中的所有对象,其链接等于另一个NSString [item link]

NSPredicate *predicate = 
      [NSPredicate predicateWithFormat:@"ANY link == '%@'", [item link]];
NSArray *filteredArray = 
      [[delegate itemArray] filteredArrayUsingPredicate:predicate];
if ([filteredArray count] > 0) {
      // IF such an object exists, do something ...
}

这不是同一件事,你在尝试? 或者我在这里误解了谓词的某些内容?

问候, 突突