辅助UITableView上的NSFetchedResultsController - 如何查询数据?

时间:2010-05-28 18:08:09

标签: iphone core-data

我正在创建一个基于核心数据的导航iPhone应用程序,具有多个屏幕。假设它是一个闪存卡应用程序。数据模型非常简单,只有两个实体:Language和CardSet。语言实体和CardSet实体之间存在一对多关系,因此每种语言可能包含多个CardSet。换句话说,Language有一对多的关系Language.cardSets指向CardSets列表,而CardSet有一个关系CardSet.language指向语言。

有两个屏幕:(1)一个初始的TableView屏幕,显示语言列表; (2)辅助TableView屏幕,显示语言中的CardSet列表。

在列出语言的初始屏幕中,我使用NSFetchedResultsController来保持语言列表是最新的。屏幕将所选语言传递给辅助屏幕。

在辅助屏幕上,我试图弄清楚是否应该再次使用NSFetchedResultsController来维护CardSets列表,或者我是否应该通过Language.cardSets来简单地将列表拉出对象模型。后者以编程方式最有意义,因为我已经拥有语言 - 但是它不会自动更新。

我查看了NSFetchedResultsController文档,看起来我可以根据属性轻松创建谓词 - 但不是关系。即,我可以创建以下NSFetchedResultsController:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name LIKE[c] 'Chuck Norris'"];

如何通过直接关系访问我的数据 - Language.cardSets - 并使用NSFetchedResultsController进行表自动更新?这可能吗?

1 个答案:

答案 0 :(得分:0)

如果您在详细信息中使用NSFetchedResultsController,则会自动通知该集合的任何更改,这是一个净胜利。就个人而言,我会使用第二个NSFetchedResultsController只是为了方便。