Я хотел бы отреагировать на измененные объекты NSManagedObject, поэтому я настроил наблюдателя:
NotificationCenter.default.addObserver(forName: NSNotification.Name.NSManagedObjectContextObjectsDidChange, object: nil, queue: nil) { notification in
...
}
Но я пока не нашел решения, как создавать объекты внутри этого блока.
NotificationCenter.default.addObserver(forName: NSNotification.Name.NSManagedObjectContextObjectsDidChange, object: nil, queue: nil) { notification in
let context = notification.object as! NSManagedObjectContext
context.perform {
let insertedObjects = notification.userInfo?[NSInsertedObjectsKey] as? Set<NSManagedObject> ?? Set<NSManagedObject>()
// insertedObjects are empty (outside of context.perform they are NOT EMPTY
}
}
Также, когда я не использую context.perform
, я получаю attempt to recursively call -save: on the context aborted
. Как мне этого добиться?