NSDocument 有 ivar 到 NSArrayController

发布于 2024-12-15 18:51:19 字数 531 浏览 2 评论 0原文

从 NSDocument 加载 NSWindowController 并保留对 NSArrayController 的引用可以吗? 我需要这个数组控制器实例来保存数据。

- (void)makeWindowControllers
{
ImageWindowController *controller = [[[ImageWindowController alloc] init] autorelease];
[self addWindowController:controller];
myArrayController = controller.bindingsController;
}

//节省

- (NSData*)dataOfType:(NSString *)typeName error:(NSError **)outError
{
return [NSKeyedArchiver archivedDataWithRootObject:myArrayController.arrangedObjects];
}

Is this ok, to load NSWindowController from NSDocument, and keep reference to NSArrayController?
I need this instance of array controller to save data.

- (void)makeWindowControllers
{
ImageWindowController *controller = [[[ImageWindowController alloc] init] autorelease];
[self addWindowController:controller];
myArrayController = controller.bindingsController;
}

//save

- (NSData*)dataOfType:(NSString *)typeName error:(NSError **)outError
{
return [NSKeyedArchiver archivedDataWithRootObject:myArrayController.arrangedObjects];
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

虚拟世界 2024-12-22 18:51:19

是的,没关系。只需确保在文档子类发布之前 myArrayController 永远不会被发布。 (如果它是在 IB 中制作的,那就没问题了)但是如果您在代码中实例化了数组控制器并将其设置为 ImageWindowController 的属性,请确保在分配变量时调用 retain ,如下所示:

myArrayController = [controller.bindingsController retain];

Yes it is OK. Just make sure that myArrayController never gets released before your document subclass is released. (if it is made in IB then it will be fine) but if you instantiated the array controller in code and set it as a property of the ImageWindowController, make sure you call retain when assigning the variable like so:

myArrayController = [controller.bindingsController retain];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文