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 次 |
最近记录: |