我如何使用存储的整数属性对核心数据中的数组进行排序?

轮状的

我正在尝试moveRowAtIndexPath使用Core Data方法。我的程序是用户驱动的,这意味着用户反复更新数据,并且基本上是一个显示实体名称的表格视图。每个实体都有两个属性:名称和代表其在tableView中位置的整数,我们称它为orderPosition我还创建了一个本地变量来存储lastIndex,这是数组中对象的数量。这使我可以为我创建的每个实体分配索引值(表中的最后一位)。我无法弄清楚的是如何orderPosition在我的实体中使用存储的属性在View Controller中为tableView创建一个排序数组,以及如何使用它来完成moveRowAtIndexPath工作。

override func viewWillAppear(animated: Bool) {
    let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let context = appDelegate.managedObjectContext!

    let fetchReq = NSFetchRequest(entityName: "Object")

    objectData = context.executeFetchRequest(fetchReq, error: nil)!

    lastIndex = objectData.count

    tableView.reloadData()
}

override func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath) {

    let val: AnyObject = self.objectsData.removeAtIndex(sourceIndexPath.row)

    self.objectsData.insert(val, atIndex: destinationIndexPath.row)

    let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let context = appDelegate.managedObjectContext!

    var fetchReq = NSFetchRequest(entityName: "Object")
    fetchReq.predicate = NSPredicate(format: "orderPosition = %@", sourceIndexPath.row)

    if let fetchResults = appDelegate.managedObjectContext!.executeFetchRequest(fetchReq, error: nil) as? [NSManagedObject] {
        if fetchResults.count != 0{

            var managedObject = fetchResults[0]
            managedObject.setValue(destinationIndexPath.row, forKey: "orderPosition")

            context.save(nil)
        }
    }
}
蒙迪

首先,带有检索对象所需的获取请求的数组不是很有效。只需使用a NSFetchedResultsController,索引路径将自动指向您的对象。此外,您可以免费获得出色的内存和性能优化。

正如评论中指出的那样,您需要保存任何新订单。例如,viewWillDisappear在重新订购或刚订购之后。根据您的设置,可能类似于以下内容:

for var i = 0; i < self.fetchedResultsController.fetchedObjects.count; i++ {
   let indexPath = NSIndexPath(row:i section:0)
   var object = self.fetchedResultsController.objectAtIndexPath(indexPath)
   object.orderPosition = i+1
}
self.managedObjectContext.save(nil)

确保将排序描述符添加到获取的结果控制器中。如果您决定不使用提取的结果控制器(不建议使用),则必须在提取请求中包括排序,以在中填充数据数组viewDidLoad

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据输入的日期对核心数据数组进行排序

来自分类Dev

在SwiftUI中,如何使用核心数据将触摸ID存储为人员/班级的属性并进行记录?

来自分类Dev

数据如何存储在核心数据模型中(属性)

来自分类Dev

数据如何存储在核心数据模型中(属性)

来自分类Dev

如何在核心数据中存储数组(Swift)

来自分类Dev

iOS Swift-如何使用核心数据存储数组?

来自分类Dev

如何在 Swift 3 中重新排序核心数据对象数组并重新排序它的 Int 属性

来自分类Dev

按日期和字符对核心数据属性进行排序

来自分类Dev

我们如何基于BOOL对核心数据获取结果进行排序

来自分类Dev

如何在GROUP BY之前对核心数据记录进行排序?

来自分类Dev

对核心数据中的相关实体进行排序

来自分类Dev

对核心数据中的相关实体进行排序

来自分类Dev

使用Swift和XCode将整数存储在核心数据中

来自分类Dev

核心数据:在多个关系中按日期属性排序

来自分类Dev

存储阵列属性中的核心数据或使用文件或关系实体

来自分类Dev

使用获取的属性进行核心数据跨商店查询

来自分类Dev

如何在核心数据中顺序存储数据?

来自分类Dev

如何在iOS的核心数据中存储JSON数据

来自分类Dev

通过核心数据在特定属性中插入值数组

来自分类Dev

如何使用html显示存储在核心数据数据库中的jpeg图像

来自分类Dev

如何使用核心数据设计对象的“排序”

来自分类Dev

可以在NSSortDescriptor中使用“ self”对对象本身而不是对象的属性进行排序吗?(核心数据/ NSFetchedResultsController)

来自分类Dev

如何在核心数据中存储NSDate?

来自分类Dev

如何在核心数据中存储CGPoint?

来自分类Dev

如何在核心数据中存储快速枚举?

来自分类Dev

如何在核心数据中存储NSDate?

来自分类Dev

如何在核心数据中存储UIButton值?

来自分类Dev

如何使用swiftui将文本字段存储到核心数据中

来自分类Dev

如何通过索引属性从核心数据中获取对象?

Related 相关文章

  1. 1

    如何根据输入的日期对核心数据数组进行排序

  2. 2

    在SwiftUI中,如何使用核心数据将触摸ID存储为人员/班级的属性并进行记录?

  3. 3

    数据如何存储在核心数据模型中(属性)

  4. 4

    数据如何存储在核心数据模型中(属性)

  5. 5

    如何在核心数据中存储数组(Swift)

  6. 6

    iOS Swift-如何使用核心数据存储数组?

  7. 7

    如何在 Swift 3 中重新排序核心数据对象数组并重新排序它的 Int 属性

  8. 8

    按日期和字符对核心数据属性进行排序

  9. 9

    我们如何基于BOOL对核心数据获取结果进行排序

  10. 10

    如何在GROUP BY之前对核心数据记录进行排序?

  11. 11

    对核心数据中的相关实体进行排序

  12. 12

    对核心数据中的相关实体进行排序

  13. 13

    使用Swift和XCode将整数存储在核心数据中

  14. 14

    核心数据:在多个关系中按日期属性排序

  15. 15

    存储阵列属性中的核心数据或使用文件或关系实体

  16. 16

    使用获取的属性进行核心数据跨商店查询

  17. 17

    如何在核心数据中顺序存储数据?

  18. 18

    如何在iOS的核心数据中存储JSON数据

  19. 19

    通过核心数据在特定属性中插入值数组

  20. 20

    如何使用html显示存储在核心数据数据库中的jpeg图像

  21. 21

    如何使用核心数据设计对象的“排序”

  22. 22

    可以在NSSortDescriptor中使用“ self”对对象本身而不是对象的属性进行排序吗?(核心数据/ NSFetchedResultsController)

  23. 23

    如何在核心数据中存储NSDate?

  24. 24

    如何在核心数据中存储CGPoint?

  25. 25

    如何在核心数据中存储快速枚举?

  26. 26

    如何在核心数据中存储NSDate?

  27. 27

    如何在核心数据中存储UIButton值?

  28. 28

    如何使用swiftui将文本字段存储到核心数据中

  29. 29

    如何通过索引属性从核心数据中获取对象?

热门标签

归档