如何在更改我的上下文后强制NSFetchedResultsController更新

时间:2015-09-20 02:15:41

标签: swift swift2

我有一个CoreData模型,我可以插入一些字符串作为新行。然后我的NSFetchedResultsController类型返回.Insert

但是当我改变我的数据时:

let uri = NSURL(string: "My Object ID")!
let mID = self.managedObjectContext!.persistentStoreCoordinator!.managedObjectIDForURIRepresentation(uri)
let oldM = try self.managedObjectContext!.existingObjectWithID(mID!) as! Soft
oldM.info = "New data"

有时NSFetchedResultsController不会发送.Update,但有时效果很好。是什么原因?有没有办法强制更新NSFetchedResultsController

更新 我试着检查这段代码是否正在调用

func controllerWillChangeContent(controller: NSFetchedResultsController) {
    print("test 1")
}

func controllerDidChangeContent(controller: NSFetchedResultsController) {
    print("test 2")
}

这两个值我只有当NSFetchedResultsController发送一些类型.Update .Insert所以我甚至不更新tableView,也许我可以添加观察然后更新我的行。

1 个答案:

答案 0 :(得分:0)

您使用此代码处理的某些操作可能不会更新表数据。您通常需要调用tableView.reloadData()来获取屏幕上的更新。