objective-c – 核心数据:重启时订购的To-Many关系

objective-c – 核心数据:重启时订购的To-Many关系,第1张

概述当我以多对多关系重新启动我的Core Data应用程序时,我的数据(在NSTableView中显示)是随机顺序.如何在退出应用程序之前按照用户保留的顺序保留它? 当然,我可以对awakeFromNib中的数据进行排序,但这并没有给出用户用于排列数据的精确顺序(例如,他可能会手动重新排列行). 我的文档的详细信息:我所拥有的是与NSArrayController管理的实体“Card”的多对多关系中的 当我以多对多关系重新启动我的Core Data应用程序时,我的数据(在NStableVIEw中显示)是随机顺序.如何在退出应用程序之前按照用户保留的顺序保留它?

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

我的文档的详细信息:我所拥有的是与NSArrayController管理的实体“Card”的多对多关系中的实体“关系”. Card有2个属性,“number”(int)和“name”(String)通过NStableVIEw的两列中的Bindings显示.通过单击表头来完成排序.

如何保留排序顺序?

解决方法 核心数据不支持有序集合(如NSArray).这是为了支持诸如仅提取一小部分信息而不拉入整个商店的事情.这就是为什么结果总是在NSSet(无序集合)中给出的原因.

保留任何类型排序顺序的唯一方法是向您的实体添加属性,如“sortOrder”,并确保将其设置为有效的.然后,您可以将数组控制器的排序描述符设置为按sortOrder进行升序排序.同样,如果您使用NSFetchRequest手动提取,也可以设置其排序描述符.

lion更新(10.7)

如果您的应用程序中的目标是10.7及更高版本,请使用-mutableOrderedSetValueForKey:和-mutableOrderedSetValueForKey:来设置和检索NSOrderedSets.好极了!

总结

以上是内存溢出为你收集整理的objective-c – 核心数据:重启订购的To-Many关系全部内容,希望文章能够帮你解决objective-c – 核心数据:重启时订购的To-Many关系所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1006874.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存