【发布时间】:2012-02-28 20:24:24
【问题描述】:
这是我的代码:
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 第一次插入后在上下文中保存的点。当您调用[NSEntityDescription insertNewObjectForEntityForName] 时,似乎调用了awakeFromInsert,这还为时过早,因为没有任何属性。我想知道什么时候在这些新的NSManagedObjects 上调用[context save: error],这样我就可以保存更多的元信息。有什么好的,干净的方法可以做到这一点? prepareForDeletion 之类的东西,非常适合清理对象。
【问题讨论】:
-
也许我误读了您的问题,但是当您在最后一行调用
[context save:&error]时,托管对象没有保存吗?或者您是否希望接收某种保存事件的通知,以便您可以在其他地方为其定义处理程序? -
元信息是什么意思?正如 Tim 建议的那样,对象保存在
[context save:error]方法中。 -
我想要一个更集中的地方,这样我就可以将所有保存后的代码放在一起。现在,它会分散在我创建 FileAttachments 对象然后保存上下文的任何地方。 prepareForDeletion 就是一个完美的例子。我想没有任何等效的“prepareToSave”方法可用。
-
为什么不做一个更集中的地方,然后从当前正在做自己工作的每个方法中调用它?
标签: ios cocoa-touch core-data nsmanagedobject