나는 awakeFromNib이 한 번만 호출되어야한다고 말했고, 나는 이것이 WindowController에 대해 두 번 호출된다는 것을보고 놀랐다. IB를 사용하여 MainMenu.xib에서 WindowController를 작성했지만로드 할 윈도우 xib 파일에 init 메소드를 추가했는지 여부를 알려주고 있습니다.awakeFromNib가 내 WindowController에 대해 두 번 호출되었습니다. 맞습니까?
코드를 디버깅 할 때이 호출 스택에 의해 트리거 된 awakeFromNib에 대한 첫 번째 호출을 찾습니다. 그래서 기본적으로 [MyWindowController init]이 첫 번째 호출을 트리거했습니다. 다음 두 번째 호출 MainMenu.xib로드 때문에 것 같아요. 그 맞습니까 ?
누군가가 조명을 사용할 수 있습니까?
현재, 스택 오버플로와 비슷한 다른 질문을하고 일부 답변은 파일 오웬 문제로 인해 발생할 수 있다고 대답했습니다. 그래서 저는 특히 윈도우 xib 파일의 파일 소유자를 NSApplication으로 변경합니다. 그러나 awakeFromNib은 여전히 MyWindowController에 대해 두 번 호출되었습니다. 귀하의 질문에서
두 개의 WindowController 인스턴스가 없습니까? –
두 개의 windowcontroller 인스턴스가 만들어 질 가능성이 있다고 생각하지 않습니다. b/c 내 MainMenu.xib에 1 개만 만듭니다. 하지만 NSLog에서 % P를 사용하여 주소를 출력하여 확인합니다. 그리고 그것은 오직 하나의 인스턴스 만 생성된다는 것을 확인합니다. – Qiulang