0

本质上,我试图模拟一个拿着预定列表中物品的背包的角色。到目前为止,我已经想出了这个。

核心数据模型

我的主要问题是了解核心数据如何处理数组/列表等。根据我所读到的由关系决定的内容,我首先想到的是一个简单的字符 - 项目关系,但我希望能够添加自定义描述从预先确定的项目中选择的每个项目(可以由用户在运行时添加)。每个角色将只有一个“背包”,其中包含带有自定义描述和自定义“数量”或计数的项目列表。该背包理论上可以有 2 件相同的物品,但描述不同,因此一件物品的计数为 2 并不总是合适的。此外,还有多个角色配置文件的选项,因此这些物品可能属于多个不同的背包,但在描述/数量等方面也有所不同。

所以我想我的主要问题是理解 Core Data 如何处理列表。以及我如何正确解决此问题以允许“字符-背包-物品”关系。

谢谢!

4

1 回答 1

0

简短快速的清理:

1:将属性添加item到您的BackPackItem

2:删除item实体

该背包理论上可以有 2 件相同但描述不同的物品

3:每次创建实体时backpackItemID,向您添加一个属性并为其分配一个唯一的 ID。这样,您可以拥有多个具有相同信息但具有不同 ID 的项目。(不需要,但在我看来让事情更干净,在这里做你想做的事)BackPackItemBackPackItem

最后:

现在,当您获取时,您需要做的就是通过Character实体的名称来获取实体。并在您的中NSFetchRequest添加BackPackItem(关联的BackPackItems 作为关系被命名)作为relationshipKeyPathsForPrefetching,所有associatedBackPackItems将自动为您获取。

现在假设您获取了 a Character,并且您想要访问它的BackPackItem-->character.associatedBackpackItems为您提供与该角色相关的所有项目。

于 2017-02-13T00:51:04.527 回答