• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 核心数据按自动递增索引排序?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 13:40:54 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

核心数据按自增索引排序?

我在 Google 上搜索过 Core Data 没有明确的自动增量 ID。 所以没有 self 实现编码就无法按自动增量ID排序 (这很容易直接在 sqlite3 中完成)。

我发现了什么

ObjectID : 但没有自增 ID。 **NSSortedSet : iOS 5.0/OS X 10.7+,不是个好主意

或者我必须这样做

**添加一个像entityID这样的属性,并在代码中设置它然后安全

我在应用程序中遇到的麻烦

一个问题的四个答案 A、B、C、D,答案是顺序的。我正在考虑添加 entityID 并为其设置增量值。然后我用它来排序

@interface NSQuestion : NSManagedObject

@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSNumber * questionID;
@property (nonatomic, retain) NSSet *answers; 
@property (nonatomic, retain) NSAnswer *selectedAnswer;
@end

加法

我从 xcdatamodeld 导出模型 NSQuestion,*我在徘徊为什么它是 NSSet 答案而不是 NSArray 答案

好方法吗?

如果其他人也有类似的问题,你真正的解决方案是什么?



Best Answer-推荐答案


您可以根据内部对象 ID 进行排序,但排序将是任意的,因为没有固有的排序(如进入时间)。

如果您希望根据插入的顺序进行排序,有多种选择。

很遗憾,您并没有具体说明您的真正目标,因此很难为您指明最佳方向。

如果您只想根据插入的顺序访问对象,则可以使用有序集。只需拥有一个与所有对象具有一对多关系的“根”对象。选中模型的“订购”框。

现在,您可以简单地将对象添加到该关系中。它将维持它们的顺序,并且您不会付出太多的性能,因为您不会不断地重新订购它们。

或者,您可以使用细粒度的时间戳,并在插入时将其添加到每个对象。然后,根据它进行排序...它会按照插入的顺序为您提供对象。

或者,您可以只使用一个简单的计数器。从数据库加载计数器对象。给新对象计数器的当前值,并为每个新对象增加计数器。您可以在托管对象类上放置一个类别来创建对象,它可以自动创建 ID。

为您的问题提供大量解决方案...取决于您想要实际完成的任务。

哦,是的...目前,iCloud 不支持有序关系...

关于ios - 核心数据按自动递增索引排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10502943/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap