gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:15:46 24 4
gpt4 key购买 nike

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

我用谷歌搜索了 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 answers 而不是 NSArray answer

好方法?

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

最佳答案

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

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

不幸的是,您确实没有指定真正的目标,因此很难为您指明最佳方向。

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

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

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

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

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

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

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

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