0

使用核心数据。假设我们有 Team 和 Player 的模型。

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

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

然后我希望能够选择单个玩家并查看 PlayerViewController 并查看他们的个人信息、编辑详细信息等。

我知道如何使用 fetchResultsController 来获取所有玩家的列表。

  1. 我如何才能最好地获取仅显示所选球队的球员所需的数据?

  2. 另外,如果我只是将数据拉入一个数组以便显示它,那么当对记录进行其他更改时,如何确保数组与核心数据保持同步?

4

1 回答 1

2

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

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

现在 fetch 请求返回 team 属性 = "Tigers" 的结果。如果没有谓词,它将返回所有对象。

谓词可能会变得复杂 - 您可以有多个条件,并且定义了特殊运算符,例如“ANY”或“LIKE”。请参阅谓词编程指南

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

于 2010-08-16T03:21:34.007 回答