閱讀了超過10篇使用Obj-C編寫的文章& Swift。 我仍然不知道如何使用CoreData重新排列列表中的行。在Swift 2中使用CoreData的moveRowAtIndexPath
因爲我知道如何添加一個新的對象,以及如何刪除一個我試圖合併在一起都和我moveRowAtIndexPath
方法成爲
let prefToMove = mainVC.user.prefs[fromIndexPath.row] as! Pref
var prefs = mainVC.user.prefs.mutableCopy() as! NSMutableOrderedSet
prefs.addObject(prefToMove)
mainVC.user.prefs = prefs.copy() as! NSOrderedSet
// managed object context saving
var error: NSError?
do {
try managedContext!.save()
} catch let error1 as NSError {
error = error1
print("Could not save: \(error)")
}
tableView.insertRowsAtIndexPaths([toIndexPath], withRowAnimation: .None)
prefs = mainVC.user.prefs.mutableCopy() as! NSMutableOrderedSet
prefs.removeObjectAtIndex(fromIndexPath.row)
mainVC.user.prefs = prefs.copy() as! NSOrderedSet
managedContext.deleteObject(prefToMove)
// managed object context saving
do {
try managedContext.save()
} catch let error1 as NSError {
error = error1
print("Could not save: \(error)")
}
// Delete the row from the data source
tableView.deleteRowsAtIndexPaths([fromIndexPath], withRowAnimation: .None)
tableView.reloadData()
但是,這是行不通的。刪除部分工作但插入失敗。 有人可以給我任何幫助嗎?
只是一句話:如果你使用英文名稱作爲變量,方法等,更多的讀者會理解你的代碼。 –
@MartinR按要求修改。感謝您的建議 – Nicholas