2010-08-16 67 views
0

使用核心数据。假设我们有Team and Player的模型。iPhone核心数据 - 如何根据父母关系显示选定的记录?

假设: - 每个玩家都是单个团队的成员 - 已在xcdatamodel文件中创建了相关关系。

我有一个TeamListViewController(列出所有团队),当我选择一个团队时,我想查看与该选定团队在PlayerListViewController上相关的那些球员的列表。

然后我希望能够选择一个单独的球员,看看PlayerViewController并查看他们的个人信息,修改信息等

我知道如何使用fetchResultsController中的所有球员名单拉。

  1. 我该如何才能最好地提取所需数据以显示所选团队的球员?另外,如果我只是将数据拉入数组以便显示数据,那么在对记录进行其他更改时如何确保数组与数据保持同步?

回答

2

您需要获取符合特定条件的对象是NSPredicate。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"team=Tigers"]; 
[fetchRequest setPredicate:predicate]; 

现在,获取请求返回结果,其中team attribute =“Tigers”。没有谓词它将返回所有对象。

谓词可能会变得复杂 - 您可以有多个条件,特殊的操作符被定义为“ANY”或“LIKE”。请参阅Predicate Programming Guide

关于第二个问题 - 您是否预计访问具有多个线程的Core Data存储?开始阅读......您需要每个线程的托管对象上下文。如果不是,你基本上不需要担心。对底层商店的更改会“出错”,就像您跟随您未明确提取的对象的关系一样。

+0

非常感谢,非常感谢,那么容易,那么我认为它会。 >你是否期望访问多线程的Core Data存储?不,上面我们现在不需要考虑创建一个单独的数组,而只是依赖于改进的获取请求。 – Evolve 2010-08-16 07:11:55