【发布时间】:2015-12-23 02:28:46
【问题描述】:
我有一个 tableView 和一个数组 locationsArray。位置数组从我的 CoreData 中的数据填充到 viewDidLoad。
我已经在 tableView 上实现了重新排序方法,并且效果很好,但是我不知道如何将重新排序的数组保存回 CoreData。我尝试删除 CoreData 中的所有内容,只保存新的 reorderedArray。尽管这显然是非常昂贵的资源,但似乎只是以看似随机的顺序将元素加载回数组中。
是否有一种简单的方法可以做到这一点,我错过了,或者您不能按特定顺序将内容存储在 CoreData 中吗?
【问题讨论】:
-
随机顺序比较快,所以如果需要保留顺序,可以使用有序关系或者添加一个用于排序(比较)的属性。
-
所以我可以制作自己的订购套装吗?你知道这将如何运作吗?
-
如果一个关系适合您的数据模型,启用“Ordered”复选框,Xcode 将为您生成一个有序的集合方法(有几个旧的已知问题,我相信您将能够使用搜索快速解决)。否则,可以使用其他属性进行比较,与
NSSortDescriptor和NSFetchRequest的 sortDescriptors 数组一起使用,它不需要重大的模型更改,但您必须手动维护新属性(如果 min/max值,在插入或删除元素时进行批量更新等)。
标签: ios objective-c arrays uitableview core-data