这是我的代码:
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
的时间,因此我可以保存更多的元信息。这有什么好的,干净的方法吗?像prepareForDeletion
这样的东西,非常适合清理物体。
答案 0 :(得分:0)
您可以继承NSManagedObjectContext并覆盖save:方法。您可以在该点运行“集中式”代码,然后调用超类的保存:。对超类save方法的调用是实际保存的,就像其他人所说的那样。
答案 1 :(得分:0)
NSManagedObjectContext会生成许多可能正在寻找的NSNotifications。查看NSManagedObjectContextDidSaveNotification和NSManagedObjectContextObjectsDidChangeNotification的文档。