【问题标题】:How do i update CoreData after a row movement in a UITableView?如何在 UITableView 中的行移动后更新 CoreData?
【发布时间】:2017-01-27 05:28:43
【问题描述】:

我在 UITableView 中显示一堆数据,我的数据源来自核心数据多对多关系的 NSSet。如果用户在表格视图中移动一行,我希望它在 Core-Data 中产生永久影响。因此,当重新加载表视图时,您可以看到更改,并且 NSSet 在行中移动后按照用户离开它的方式重新排序。我想知道什么方法最适合这个。谢谢!

【问题讨论】:

  • developer.apple.com/reference/uikit/uitableview/1614987-moverow 你可以使用这个,但要注意你需要一个块并且在你需要写入CoreData的块内(否则你会得到一个数据不一致错误)
  • 感谢您的评论,这将在视觉上起作用,但不会持久。
  • 你需要在块内持久化
  • CoreData 关系是否定义为有序的?
  • 不,有帮助吗?

标签: swift uitableview core-data


【解决方案1】:

如果您将关系指定为有序,它将表示为NSOrderedSet 而不是NSSet。顾名思义,有序集允许您指示它包含的项目的顺序。操作它以反映用户选择的序列的最佳途径是方法mutableOrderedSetValue(forKey:),它将为您提供一个可变有序集 (NSMutableOrderedSet),您可以使用各种添加、插入、移动、替换、删除方法重新排序。

【讨论】:

  • 嗯,这很有道理。我不知道您可以将关系设置为有序集。感谢您的回复,我会尝试一下并回复您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
相关资源
最近更新 更多