pau*_*kow 1 cocoa core-data nspersistentdocument
在使用加载现有文档时NSPersistentDocument,作为初始化的一部分,我想准备一些内容:
NSFetchRequest *req = [NSFetchRequest fetchRequestWithEntityName:@"DocumentRoot"];
NSArray *results = [self.managedObjectContext executeFetchRequest:req error:NULL];
if (results.count) self._docRoot = [results objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
当我将此代码放入时-init,提取请求不会返回任何结果。
在将视图控制器组件从我的NSPersistentDocument子类重构到新的NSWindowController子类时遇到了这个问题。我曾经在中处理过这种初始化-windowControllerDidLoadNib:,但是现在不再调用了。
如果将代码从-init移到,-makeWindowControllers我会得到预期的结果。是否-makeWindowControllers真的准备这样的内容的权利的地方吗?
根据我得到的答复,我认为我做对了,所以这是我对自己问题的回答。
如果您使用的是NSPersistentDocument提供的Core Data堆栈,则不能使用中的Core Data -init。
相反,您应该:
-windowControllerDidLoadNib:–中,或者如果使用自定义NSWindowController子类,则放在中-makeWindowControllers。-setUpDocument,然后从-makeWindowControllers/ 调用该方法-windowControllerDidLoadNib:。如果您使用的是普通的NSDocument,或者您自己设置了Core Data堆栈,则可以在中设置文档模型-init。
| 归档时间: |
|
| 查看次数: |
2430 次 |
| 最近记录: |