Основные данные: когда NSManagedObject вставляется в контекст и сохраняется? - PullRequest
0 голосов
/ 29 февраля 2012

Вот мой код:

for (NSString *filePaths in self.filesAdded) {
        FileAttachments *fileObject = [NSEntityDescription insertNewObjectForEntityForName:@"FileAttachments" inManagedObjectContext: context];
        fileObject.fileName = filePaths;
}

NSLog(@"before context->save");
if (![context save:&error]) ...

Я пытаюсь найти момент, когда NSManagedObject является сохраненным в контексте после первой вставки. Кажется, awakeFromInsert вызывается, когда вы вызываете [NSEntityDescription insertNewObjectForEntityForName], что слишком рано, поскольку ни одно из свойств. Я хочу знать, когда [context save: error] вызывается на этих новых NSManagedObject s, так что я могу сохранить больше метаинформации. Есть ли хороший, чистый способ сделать это? Что-то вроде prepareForDeletion, которое идеально подходит для уборки предметов.

Ответы [ 2 ]

0 голосов
/ 29 февраля 2012

NSManagedObjectContext генерирует несколько NSNotifications, которые могут быть тем, что вы ищете. Проверьте документацию для NSManagedObjectContextDidSaveNotification и NSManagedObjectContextObjectsDidChangeNotification.

0 голосов
/ 29 февраля 2012

Вы можете создать подкласс NSManagedObjectContext и переопределить метод save:. Вы можете запустить свой «централизованный» код в этой точке и затем вызвать save: суперкласса. Вызов суперкласса save: method - это когда он действительно сохранен, как говорили другие.

...