managedContext.insertObject 在 Swift 中调用“atIndex”的额外参数?
Posted
技术标签:
【中文标题】managedContext.insertObject 在 Swift 中调用“atIndex”的额外参数?【英文标题】:managedContext.insertObject extra argument in call `atIndex` in Swift? 【发布时间】:2016-01-15 12:51:57 【问题描述】:这是我的代码:(我想重新排序表格并更新核心数据):
override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath)
let entity = NSEntityDescription.entityForName(entity, inManagedObjectContext: managedContext)
let entityObject = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext)
entityObject.setValue(content, forKey: key)
self.managedContext.insertObject(entityObject, atIndex: 0) //ERROR HERE
do
try managedContext.save()
catch let error as NSError
我见过类似的代码here,但为什么我的代码不起作用?谢谢!
【问题讨论】:
【参考方案1】:您提供的链接与您在此处所做的不同。他在那里所做的是将对象删除并插入到 Playlist
的数组中。
如果您真的想重新排序表格并相应地更新 Core Data,您可能需要在您的 Core Data 模型中添加一个index
字段,并在每次移动单元格时使用单元格索引更新它。
因此您可以按照index
字段的顺序将数据填充到表格视图中,并保持单元格顺序与数据模型同步。
【讨论】:
【参考方案2】:首先附注:NSManagedObjectContext
中的对象是无序的,因此无法在特定索引处插入对象。
由于对象已经在NSManagedObject(entity:insertIntoManagedObjectContext:)
方法的上面两行插入,删除导致错误的行。
【讨论】:
【参考方案3】:同意 Vadian,您无需担心订购 Managed Object Context。
要更新你应该运行的 UI -
"tableView.reloadData"
除了上面的代码。
【讨论】:
以上是关于managedContext.insertObject 在 Swift 中调用“atIndex”的额外参数?的主要内容,如果未能解决你的问题,请参考以下文章