gpt4 book ai didi

objective-c - 如何在核心数据中保留有序列表

转载 作者:可可西里 更新时间:2023-11-01 03:07:15 27 4
gpt4 key购买 nike

我正在编写一个从网络服务返回对象列表的 API 方法。此服务还缓存结果并尝试在再次访问 Web 服务之前返回缓存的结果(如果有)。所以我将这个列表存储在核心数据实体中。但是 Core Data 只允许将多对多关系存储在 NSSet 中,它不保持顺序。但我希望缓存的结果保留原始顺序(最初来自 Web 服务)。我不一定知道这个顺序是如何建立的(所以我无法排序)。

那么我怎样才能保留这个顺序呢?我的计划是存储一个包含对象 ID 的字符串,稍后我可以用它来对它们进行排序:

NSString *objectIds = @"1 5 2 9 4";

这是最好的方法吗?

最佳答案

如果您可以针对 iOS 5,那么您可以使用新的 NSOrderedSet任意排序的核心数据关系的功能。查看Core Data Release Notes for iOS 5有关此新功能的更多信息。

如果您必须支持 iOS 4,那么您需要自己处理订单。一种常见的方法是向您的模型添加一个整数属性,然后您需要自己管理它。然后,您可以在获取数据时对此属性进行排序。

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

关于objective-c - 如何在核心数据中保留有序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8750326/

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