NSFetchedResultsController 및 DATAStack을 사용하고 있습니다. 다른 컨텍스트에서 변경 한 경우 내 NSFetchedResultsController 내 테이블을 업데이트하지 않습니다.NSFetchedResultsController가 백그라운드 컨텍스트 (DATAStack)에서 업데이트되지 않습니다.
NSFetchedResultsController에서 dataStack.mainContext
을 사용합니다. mainContext에서 업데이트를하면 모든 것이 정상입니다. 그러나 만약 내가 그런 코드를 작성한다면 :
dataStack.performInNewBackgroundContext({ (backgroundContext) in
// Get again NSManagedObject in correct context,
// original self.task now in main context
let backTask = backgroundContext.objectWithID(self.task.objectID) as! CTask
backTask.completed = true
let _ = try? backgroundContext.save()
})
NSFetchedResultsController는 셀을 업데이트하지 않습니다. 예를 들어 애플리케이션이나 전체보기를 새로 고침하면 업데이트 된 데이터가 표시됩니다.
데이터 저장에 오류가 없습니다 (확인했습니다).
NSManagedObjectContextDidSaveNotification을 받았는지 확인하려고했지만 알림을받은 후 .performFetch()를 수행하면 테이블에 이전 데이터가 다시 나타납니다.
NSFetchedResultsController의 이러한 유형의 버그로 인해 우리는 좋은 대안이 있기를 바랍니다. – 3lvis