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];
}
4

1 回答 1

0

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

myArrayController = [controller.bindingsController retain];
于 2011-11-16T01:51:10.277 回答