核心数据 - 单个实体的多个条目
Posted
技术标签:
【中文标题】核心数据 - 单个实体的多个条目【英文标题】:Core Data - Multiple Entries for a Single Entity 【发布时间】:2013-03-11 20:53:02 【问题描述】:所以在我的应用中,我有一个名为 Cards 的实体和另一个名为 Transactions 的实体。
交易实体具有以下属性:日期、位置和金额。因此,如果用户在 10 个地点消费,我需要在单张卡的 Transactions 中有 10 个条目。
我刚开始使用 Core Data,它变得一团糟。
我还使用 MagicalRecord 来处理 Core Data。
我能够对卡片实体进行 CRUD、添加、更新等...一切都很好。
问题是,我需要将交易添加到卡中,但不知道如何从这种关系开始。如何将交易添加到卡中,然后获取包含所有交易的卡?
任何见解将不胜感激。
【问题讨论】:
【参考方案1】:如果我理解正确,那么你就可以在它们之间建立关系。
Card -> Transaction 是一个多对多关系。有关此选项,请参见 xcode 中的右侧窗格。 添加一个逆。总是添加一个逆。所以你有一个非多对多关系 交易 -> 卡 对?每次交易只有一张卡?
答案的其余部分取决于您访问数据的方式。我建议为每个实体创建一个模型类。你知道如何?单击实体,然后转到文件/新建/文件,选择核心数据,然后选择 NSManagedObjectSubclass,它将为您创建。此类具有添加相关项目的方法。
myTransaction.card = myCard; 分别 [myCard addTransactionsObject:myTransaction];
当然假设 myCard 和 myTransaction 是类,并且您的一对一关系被命名为卡片,而对多关系被命名为事务。
【讨论】:
【参考方案2】:只需设置从Card
到Transaction
实体的一对多关系,然后使用该关系简单地获取您的所有(先前由[card addTransactionsObject:newTransaction]
调用添加)事务:card.transactions
。
不要忘记添加从Transaction
到Card
的反比关系!
【讨论】:
以上是关于核心数据 - 单个实体的多个条目的主要内容,如果未能解决你的问题,请参考以下文章