核心数据:NSManagedObject何时插入上下文并保存?

时间:2012-02-28 20:24:25

标签: ios cocoa-touch core-data nsmanagedobject

这是我的代码:

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这样的东西,非常适合清理物体。

2 个答案:

答案 0 :(得分:0)

您可以继承NSManagedObjectContext并覆盖save:方法。您可以在该点运行“集中式”代码,然后调用超类的保存:。对超类save方法的调用是实际保存的,就像其他人所说的那样。

答案 1 :(得分:0)

NSManagedObjectContext会生成许多可能正在寻找的NSNotifications。查看NSManagedObjectContextDidSaveNotification和NSManagedObjectContextObjectsDidChangeNotification的文档。