在当前项目中,我有一组使用核心数据存储的对象。 现在我需要向 DataModel 添加一个字段。
我已经添加了它,创建了新的映射模型,将其设置为当前并成功迁移到新的数据模型。一切正常,但是……我的数据顺序丢失了。 由于某些奇怪的原因,以前的开发人员没有为数据模型创建任何顺序属性,并且在获取数据时自动对其进行了排序(我相信是按 id..)
使用映射模型迁移到新数据模型后,每次迁移后我的数据都会随机排序。 一些与此数据顺序相关的应用程序逻辑现在已损坏。
如何解决这个问题? 可以根据旧 ID 创建订单属性吗? 或者我如何使用 ID 进行迁移?
已经花了一天时间解决这个问题,但没有找到解决方案。
非常感谢! 亚历克斯。
请求检索数据代码:
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Area" inManagedObjectContext:[self context]];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSError *error;
return [[[self context] executeFetchRequest:request error:&error] mutableCopy];
最佳答案
最简单的方法是不依赖于某些内部排序。当您访问数据时,将排序描述符添加到获取请求中。
还要确保您的排序结果按顺序处理,请使用老式循环 for (int i = 0; i < array.count; i++)
而不是枚举器 for (id a in array)
.
关于objective-c - Core Data迁移后如何保持数据排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40625375/