Dies ist der Code, speichere ich das Modell über magischen Record:NSFetchedResultsController ruft didChangeObject statt
MagicalRecord.saveWithBlock({ (localContext) -> Void in
var localNotification = CDNotification.MR_findFirstByAttribute("notificationID", withValue: notification.notificationID, inContext: localContext) as CDNotification
localNotification.readNumber = NSNumber(bool: true)
})
Löschen statt Update aufgerufen wird, nachdem der Code oben genannt wird:
func controller(controller: NSFetchedResultsController, didChangeObject object: AnyObject, atIndexPath indexPath: NSIndexPath, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath) {
switch type {
case NSFetchedResultsChangeType.Insert:
self.tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Fade)
case NSFetchedResultsChangeType.Update:
if let cell = self.tableView.cellForRowAtIndexPath(indexPath){
self.configureCell(cell as TableViewCell, atIndexPath: indexPath, withNotification: object as CDNotification)
}
self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
case NSFetchedResultsChangeType.Move:
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
self.tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Fade)
case NSFetchedResultsChangeType.Delete:
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
default:
return
}
}
Dies geschieht nur, wenn ich das Prädikat für die Abrufanforderung im Beispiel festlegen:
GENAU :-) Das gleiche Problem. Hast du die Antwort gefunden? –
Gibt es eine Problemumgehung dafür? Dies ist ein ernsthafter Fehler. Ich würde innerhalb von 'DELETE' überprüfen, ob es wirklich aus der Datenbank entfernt wurde, aber es wurde aus 'NSFetchedResultsController' entfernt, daher weiß ich nicht, welches Objekt ich prüfen sollte, ob es in Core Data existiert. Irgendwelche Ideen? –
Ich habe das gleiche Problem hier: http://stackoverflow.com/questions/32377070/nsfetchedresultscontroller-remove-row-from-guidableview-after-update-relationship. Aber ich aktualisiere Beziehungen statt Eigenschaften. Das gleiche Problem. –