gpt4 book ai didi

arrays - 如何在 Core Data 中存储一组自定义(和重复)对象?

转载 作者:行者123 更新时间:2023-11-28 06:34:29 25 4
gpt4 key购买 nike

我的应用程序有可以放在一个团队中的怪物对象。同一物种的怪物可以在一个团队中出现不止一次,这一点很关键。每队包含 6 个怪物。

最初,我在 Teams 和 Monsters 之间设置了一对多关系。但是 Swift 的 Set 不允许同一类型的怪物在一个团队中出现两次。这是一个问题,因为我的应用程序需要能够让同一个怪物多次出现在一个团队中。

我读过可以使用可转换类型或二进制类型在 Core Data 中存储数组。不幸的是,大多数资源都不在 Swift 中,我无法转换。这些途径之一会是我需要的解决方案吗?如果是这样,我应该使用可转换的还是二进制的?最后(也是最重要的)如何存储和检索自定义对象数组?我以前从未使用过 NSCoding,不知道从哪里开始。

最佳答案

我不会使用可转换或二进制属性,而是添加第三个实体:TeamMembership . TeamMembership对象表示 Monster 的单个实例成为单例成员(member)Team .所以 TeamMembership对象将与 Monster 具有一对一关系和 Team .

每个Team将有六个成员,因此它将与 TeamMembership 具有一对多关系.同样,每个 Monster可能会成为几个 Teams 的成员(或者实际上是同一个 Team 的成员多次)所以它同样与 TeamMembership 有一对多的关系。 .

关系图看起来像这样:

enter image description here

有了这个设置,一个完整的 Team将与六个独立的、不同的TeamMembership相关对象。这些对象中的每一个都将与一个 Monster 相关.但完全有可能两个(甚至全部六个)TeamMembership对象与同一个怪物相关,(我希望)满足您的要求。缺点是添加 MonsterTeam涉及创建一个新的 TeamMembership对象并设置其与相关 Team 的关系和 Monster对象,而不仅仅是直接设置它们之间的关系。

关于arrays - 如何在 Core Data 中存储一组自定义(和重复)对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39439679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com