gpt4 book ai didi

cocoa - 在 NSPersistentDocument 中哪里可以获取托管对象上下文?

转载 作者:行者123 更新时间:2023-12-03 16:27:04 24 4
gpt4 key购买 nike

似乎有关于在基于文档的应用程序中使用核心数据的信息。我有一个窗口 Controller ,在当前文档中运行模式窗口。用户将数据输入到文本字段中,该字段创建一个可变的字符串数组,我想用它来创建模型对象(对于多对多关系),然后将它们保存到核心数据堆栈中。这是我在模态窗口 Controller 中使用的方法。

 - (IBAction)saveContext:(id)sender {

if ([tagsArray count] != 0) {
int objectcount;
for (objectcount = 0; objectcount < [tagsArray count]; objectcount ++){
Tag *singleTag = (Tag *) [NSEntityDescription insertNewObjectForEntityForName:@"Tag" inManagedObjectContext:self.managedObjectContext];
singleTag.tagname = [tagsArray objectAtIndex:objectcount];
singleTag.video = selectedFile;
NSLog(@"Tagnames %@",singleTag.tagname);

}
}
[NSApp stopModalWithCode:NSOKButton];
[self.window close];
}

好吧,编译器对 self.managementObjectContext 不满意。这是可以理解的,因为这个类没有上下文。按照我的理解,对于基于文档的应用程序,您只想使用一个 MOC。我不明白的是如何访问文档的 MOC。 Apple 的文档有点不清楚。

Getting a Managed Object Context

In OS X:

In an single-coordinator applications, you can get the application’s context directly from the application delegate.

In document-based applications, you can get the context directly from the document instance.

我很不好意思地说我不知道​​这意味着什么。如何从文档实例获取上下文?它是某种全局变量吗?非常感谢任何帮助。

最佳答案

当您创建模态窗口时,将要使用的文档传递给它managedObjectContext

因此,也许在模式窗口的 Controller 类中有一个属性,并在调用 modalWindow.show 或任何您之前设置该 modalWindow.moc=self.managementObjectContext使用。假设 self 是您的 NSPersistentDocument 子类。

您必须使用现有 MOC 文档,不要创建新文档(可以,但您不想去那里)。

文档 MOC 是将对象添加到核心数据存储的最终访问点。

关于cocoa - 在 NSPersistentDocument 中哪里可以获取托管对象上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18284558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com