iPhone核心数据-如何基于父关系显示选定记录?

iPhone核心数据-如何基于父关系显示选定记录?,iphone,cocoa-touch,core-data,relationship,Iphone,Cocoa Touch,Core Data,Relationship,使用核心数据。假设我们有团队和球员的模型 假设: -每个球员都是一个队的成员 -相关关系已在xcdatamodel文件中建立 我有一个TeamListViewController(列出所有球队),当我选择一支球队时,我想在PlayerListViewController上看到与所选球队相关的球员列表 然后我希望能够选择一个单独的玩家,查看PlayerViewController,查看他们的个人信息,编辑详细信息等 我知道如何使用fetchResultsController拉入所有玩家的列表 我如

使用核心数据。假设我们有团队和球员的模型

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

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

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

我知道如何使用fetchResultsController拉入所有玩家的列表

  • 我如何才能最好地获取所需的数据,以便只显示所选球队的球员

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


  • 获取符合特定条件的对象所需的是NSPredicate

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"team=Tigers"];
    [fetchRequest setPredicate:predicate];
    
    现在,fetch请求返回结果,其中team属性为=“Tigers”。如果没有谓词,它将返回所有对象

    谓词可能会变得复杂-您可以有多个条件,特殊运算符的定义类似于“ANY”或“like”。见


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

    太棒了,非常感谢,这比我想象的要容易得多。>您是否预期使用多线程访问核心数据存储?不,有了以上内容,我们现在不需要考虑创建单独的数组,只需要依赖改进的fetch请求。