NSDocument имеет IVAR для NSArrayController - PullRequest
0 голосов
/ 15 ноября 2011

Это нормально, чтобы загрузить NSWindowController из NSDocument и сохранить ссылку на 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];
}

1 Ответ

0 голосов
/ 16 ноября 2011

Да, все в порядке. Просто убедитесь, что myArrayController никогда не будет выпущен, прежде чем ваш подкласс документа выпущен. (если это сделано в IB, тогда все будет хорошо), но если вы создали экземпляр контроллера массива в коде и установили его как свойство ImageWindowController, убедитесь, что вы вызываете retain при назначении переменной следующим образом:

myArrayController = [controller.bindingsController retain];
...