2011-11-15 4 views
0

NSDocument에서 NSWindowController를로드하고 NSArrayController에 대한 참조를 유지하려면이 방법을 사용 하시겠습니까? 데이터를 저장하려면이 어레이 컨트롤러 인스턴스가 필요합니다.NSDocument는 NSArrayController에 ivar을 가짐

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

답변

0

예는 OK입니다 저장합니다. myArrayController가 문서 하위 클래스가 릴리스되기 전에 절대로 릴리스되지 않도록하십시오. (이 IB에서 만든 경우 그것은 잘 될 것입니다)하지만 당신은 코드에서 어레이 컨트롤러를 인스턴스화 ImageWindowController의 속성으로 설정하면, 그래서 같은 변수에 할당 할 때 retain 전화 확인 :

myArrayController = [controller.bindingsController retain]; 
관련 문제