Coredata 和 NSOrderedSet - 如何定义集合的顺序?
Posted
技术标签:
【中文标题】Coredata 和 NSOrderedSet - 如何定义集合的顺序?【英文标题】:Coredata and NSOrderedSet - how is the order of the set defined? 【发布时间】:2012-02-29 10:47:56 【问题描述】:我查看了现有文档,但找不到任何可以证实我所看到行为的内容。
从 ios 5 开始,可以对 CoreData 关系进行排序,在这种情况下,返回的对象是一个 NSOrderedSet。
任何人都可以确认集合中对象的顺序与创建它们的顺序相匹配吗?
干杯, 罗格
【问题讨论】:
在 NSOrderedSet 上注意这个错误 - 你需要重写才能使删除工作:***.com/a/7922993/1046685 感谢 Damien 的提醒! 【参考方案1】:如果您不使用sortedArrayUsingComparator:
自己对顺序进行排序,那么我相信对象会按照添加它们的顺序进行排序。
您也可以使用 – insertObject:atIndex:
手动设置顺序。
https://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSMutableOrderedSet_Class/Reference/Reference.html#//apple_ref/occ/cl/NSMutableOrderedSet
【讨论】:
【参考方案2】:您应该使用旧 NSOrderedSet 中的数据创建一个 NSMutabledOrderedSet,进行更改并再次将数据移回:
NSMutableOrderedSet *orderedSet = [[NSMutableOrderedSet alloc] initWithSet:[self.myOrderedSet set]];
[orderedSet insertObject:newObject atIndex:index];
self.myOrderedSet = orderedSet;
【讨论】:
以上是关于Coredata 和 NSOrderedSet - 如何定义集合的顺序?的主要内容,如果未能解决你的问题,请参考以下文章
在 CoreData 的 NSOrderedSet 中查找对象。索引(无障碍元素:)
在CoreData的NSOrderedSet中的特定位置插入一个对象?
如何在 SwiftUI 中从 FetchedResults (CoreData) 中获取 NSOrderedSet