iOS - 重新排序 CoreData 中的项目

标签 ios objective-c arrays uitableview core-data

我有一个 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/

相关文章:

ios - 序列中可以有 if 语句吗?

arrays - JQ 如何向完整树添加节点

ios - 如何从 ViewController 转移(推送)到另一个嵌入在 NavigationController 中的 ViewController?

ios - 为什么我的 subview 没有显示在堆栈顶部?

ios - Swift:出现键盘时滚动 UITableView

ios - 进度 View 循环

iphone - 以编程方式创建元素并重用代码

ios - Xcode 8 中的单元测试失败

c - 将字符串读入 char 数组,然后获取字符串的大小

数组和子数组上的 Javascript 递归