我有一个 tableView 和一个数组 locationsArray
。 locations 数组由我的 CoreData 中的数据填充到 viewDidLoad
上。
我已经在 tableView 上实现了重新排序方法并且工作正常但是我不知道如何将重新排序的数组保存回 CoreData。我试过删除 CoreData 中的所有内容,只保存新的 reorderedArray。虽然这显然是非常昂贵的资源明智,但它似乎只是以看似随机的顺序将元素加载回数组。
有没有一种我遗漏的简单方法可以做到这一点,或者您不能按特定顺序将内容存储在 CoreData 中?
最佳答案
严格来说,不可能按一定顺序存储对象。您只能设置检索对象的顺序
当您检索 locationsArray
时来自 CoreData,您对他们的订单没有任何保证。
唯一的方法 - 将字段添加到将用于订购您的位置的托管对象。
然后,在检索时,您将能够使用 locationsArray = [locationsArray sortedArrayUsing<#WhateverYouNeed#>];
.
您也可以通过使用 sortDescriptors 来实现此目的NSFetchRequest 的属性。它将为您提供开箱即用的所需行为。唯一的缺点是,在这种情况下,您的 NSSortDescriptor 不能按 block 定义,因此如果您使用某种复杂的方法进行排序,则需要使用已获取的数据对结果进行排序
关于iOS - 重新排序 CoreData 中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32779082/