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 がリリースされないようにしてください。retain(IBで作成されている場合は問題ありません)しかし、配列コントローラーをコードでインスタンス化し、それをImageWindowControllerのプロパティとして設定する場合は、次のように変数を割り当てるときに必ず呼び出してください:

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