objective-c – 如何在Core Data中保留有序列表

objective-c – 如何在Core Data中保留有序列表,第1张

概述我正在编写一个API方法,它返回Web服务中的对象列表.此服务还会缓存结果并尝试在再次访问Web服务之前返回缓存的结果(如果有).所以我将此列表存储在Core Data实体中.但是Core Data只允许将to-may关系存储在NSSet中,而NSSet不会保留顺序.但我希望缓存的结果保留原始顺序(最初来自Web服务).我不一定知道该命令是如何建立的(因此我无法排序). 那我怎么能保留这个订单呢? 我正在编写一个API方法,它返回Web服务中的对象列表.此服务还会缓存结果并尝试在再次访问Web服务之前返回缓存的结果(如果有).所以我将此列表存储在Core Data实体中.但是Core Data只允许将to-may关系存储在NSSet中,而NSSet不会保留顺序.但我希望缓存的结果保留原始顺序(最初来自Web服务).我不一定知道该命令是如何建立的(因此我无法排序).

那我怎么能保留这个订单呢?我的计划是存储一个带有对象ID的字符串,我稍后可以使用它来对它们进行排序:

Nsstring *objectIDs = @"1 5 2 9 4";

这是最好的方法吗?

解决方法 如果您可以定位iOS 5,那么您可以将新的 NSOrderedSet功能用于任意排序的Core Data关系.有关此新功能的详细信息,请参阅 Core Data Release Notes for iOS 5.

如果您必须支持iOS 4,那么您需要自己处理订购.执行此 *** 作的常用方法是向模型添加整数属性,然后您需要自行管理.然后,您可以在获取数据时对此属性进行排序.

将订单存储在完全不同的字符串中似乎是错误的方法.如果排序很重要,则此信息应该在模型中,并且用户应该能够直接查询它(“给我这个特定列表的前五个对象”,或“对象foo的索引是什么”).必须获取一串对象ID,解析它,然后查询某些对象ID对我来说是非常错误的.

总结

以上是内存溢出为你收集整理的objective-c – 如何在Core Data中保留有序列表全部内容,希望文章能够帮你解决objective-c – 如何在Core Data中保留有序列表所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存