11

dateTime我有一个包含属性和的股价列表value

目前,我在使用排序描述符获取股价时对股价进行排序。

现在,我想更改我的代码并将它们存储在已经排序的顺序中,以更快地检索最新的股价(dateTime = max)。

我正在使用一一插入股价

SharePrice *priceItem= [NSEntityDescription insertNewObjectForEntityForName:@"SharePrice" inManagedObjectContext:context];

如何在使用排序描述符插入股价后立即对股价进行排序dateTime

还是我需要将其转换为 aNSMutableOrderedSet并使用sortUsingComparator:

谢谢!

4

3 回答 3

24

CoreData 上的有序属性

在 CoreData 模型中标记属性的 Ordered 复选框。

还要确保在您的 AppDelegate 中设置 CoreData 自动迁移(创建 PersistentStore 时的选项字典)。这样,CoreData 将能够在不丢失数据的情况下进行此更改。

于 2013-04-27T07:46:20.380 回答
4

我想添加到已接受的答案中,如果您有 a NSSet,则必须NSOrderedSet在选择有序复选框后将其更改为 a

于 2016-06-06T06:29:20.370 回答
0

我不确定使用 NSMutableOrderedSet 会如何影响底层的 sqlite 数据库。很高兴认为它会按集合的顺序存储它,但底层实现是一个黑盒,我不认为有任何保证它会始终如一地工作,如果它工作的话。

如果这是您正在寻找的性能提升,我认为向该属性添加索引将是最好的方法。

于 2013-04-25T14:56:43.170 回答