gpt4 book ai didi

objective-c - 核心数据 : To-Many Relationship ordered upon restart

转载 作者:太空狗 更新时间:2023-10-30 03:59:14 27 4
gpt4 key购买 nike

当我重新启动具有一对多关系的 Core Data 应用程序时,我的数据(在 NSTableView 中显示)是随机排列的。如何按照用户在退出应用程序之前离开它的顺序保存它?

当然,我可以在 awakeFromNib 中对数据进行排序,但这并没有给我用户用来排列数据的精确顺序(例如,他可能会手动重新排列行)。

我的文档的详细信息:我所拥有的是一个实体“Relationship”与一个实体“Card”的一对多关系,两者都由 NSArrayController 管理。 Card 有 2 个属性,“number”(整数)和“name”(字符串),通过绑定(bind)显示在 NSTableView 的两列中。单击表格标题即可完成排序。

如何保留排序顺序?

最佳答案

Core Data 不支持有序集合(比如 NSArray)。这是为了支持诸如仅获取一小部分信息而不拉入整个商店之类的事情。这就是为什么结果总是在 NSSet(无序集合)中给出的原因。

保留任何排序顺序的唯一方法是向您的实体添加一个属性,例如“sortOrder”,并确保将其设置为有效的值。然后,您可以将数组 Controller 的排序描述符设置为按 sortOrder 升序排序。同样,如果您使用 NSFetchRequest 手动获取,您也可以设置它的排序描述符。

Lion (10.7) 更新

如果您的应用程序的目标是 10.7 及更高版本,NSManagedObject now gives you ordered relationships.使用 -mutableOrderedSetValueForKey: 和 -mutableOrderedSetValueForKey: 设置和检索 NSOrderedSets。耶!

关于objective-c - 核心数据 : To-Many Relationship ordered upon restart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3389834/

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