ios - 如何用Core Data设计对象的 "ordering"

标签 ios objective-c oop core-data nsset

我有一个 Bullet 对象和一个 List 对象。一个列表有很多项目符号,一个项目符号可以属于多个列表。

但我需要保证 Bullet 对象的顺序。例如,一个 List 对象应该始终按顺序包含 #1 Bullet A #2 Bullet B 和 #3 Bullet C。另一个列表(列表 B)可能具有相同的项目符号,但顺序不同,#1 Bullet B、#2 Bullet C 和#3 Bullet A。

NSSet 不存储顺序,Core Data 不允许数组。

我该怎么办?我可以在这里对属性做些什么吗?

编辑:听了下面的评论后,我意识到这是列表和项目符号之间的“多对多”关系......例如,一个项目符号(名称:“鸡蛋”)可以出现在列表(名称: “乳制品”)和列表(名称:“食品”)。

最佳答案

我会插入第三个实体,比方说 BulletsInList,它有一个属性,您可以在其中存储您的排序位置(1、2、3 等)。

您现在可以在 Bullet 和 BulletsInList 之间建立一种关系,而不是 List 和 Bullets 之间的关系(一个 BulletsInList 可以包含在多个 BulletsInList 中,一个 BulletsInList 恰好属于一个 Bullets)和另一个 List 和 BulletsInList 之间的关系(一个 List 可能有许多 BulletsInLists,一个 BulletsInList 正好属于一个 List)。

简而言之,BullettsInList 对象包含:1 个列表对象、1 个项目符号对象和 1 个数字属性用于您的职位。

关于ios - 如何用Core Data设计对象的 "ordering",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27091666/

相关文章:

iphone - 如何将 XCode 项目保存为模板以供其他应用使用?

iphone - 无法识别的选择器发送到实例”问题

oop - 如何检查一个对象是否是 Haxe 中给定类的后代?

iphone - 当用户滚动到tableView的底部时,如何向UITableView添加10条记录

ios - 核心数据多线程

ios - QuickBlox:如何获取房间的所有成员?

ios - 将表格单元格添加到 iOS 中特定部分的表格

javascript - 使用商店在 Svelte 中使类实例具有反应性

ruby - IRB 和 Ruby 对象模型

ios - UITableView单元格插入失败