iphone - 关系的核心数据建模

标签 iphone ipad core-data

我正在 Core Data 中对我的应用程序进行建模。我有一个名为“统计”的对象,该对象将具有与每个对象关联的“玩家”、“团队”和“游戏”。一旦存储了这些统计对象,我想象通过这些属性(玩家、团队、游戏)中的任何一个或多个来查询它们。请参阅下面的型号。

Core Data Model

问题 1:将这些建模为“关系”而不是“属性”是否有意义。

问题 2:检索时,我想使用对象形成 NSPredicates,而不必跟踪每个玩家、团队或游戏的唯一 ID 名称。如果我将玩家、团队和游戏对象(而不是唯一的 ID 或名称)与每个实体一起存储,那么检索它们的最佳方法是什么。如果我想检索特定“团队”(someTeamObject)的所有统计对象,或者我需要按 ObjectID 查询,以下操作是否有效?

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"team == %@", someTeamObject];

谢谢

最佳答案

  1. 如果我理解你的问题,是的,将它们建模为具有它们之间关系的单独对象是有意义的。它在获取各种对象时尤其有帮助;例如,您可以获取与给定统计数据关联的单个玩家,或者获取游戏的所有统计数据。这就引出了你的第二个问题:

  2. 请注意,您的关系有名称,而不是使用谓词;您可以只调用相关的访问器方法,而不是构建带有关联 NSPredicate 的完整 NSFetchRequest。对于获取团队的所有 Stat 对象的请求,您只需调用 [team stats] 即可返回一个 Stat 对象的 NSArray。

关于iphone - 关系的核心数据建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5149092/

相关文章:

iphone - 如何使用 UIActivityViewController 共享位置?

iphone - 共享核心数据和图像到 iCloud

ios - CorePlot 多个散点图内存消耗巨大

ios - CoreData CRUD 操作测试且无 NSManagedObjectDidSave 通知

ios - 如何从 UITableView swift 4 中删除一行,其中使用 CoreData 存储数据?

iphone - 我应该从什么类型的 iOS 项目模板开始?

iphone - 用于 iPhone 测试的 CoverStory?

ios - 导航栏按钮未在真实设备上显示

iphone - iPad 崩溃以及可能相关的内存问题

ios - 在后台设置请求的最佳方式