2011-01-23 6 views
0

문서 기반 코코아 응용 프로그램이 있습니다. 런타임 중에 [NSBundle loadNibNamed:@"inspectorNIB" owner:self] (여기서 selfNSDocument)을 호출하여 번들에서 추가 펜촉을로드합니다.이상한 loadNibNamed 동작

이상하게도 번들로드가 성공하면 NSDocumentawakeFromNib 메서드가 다시 호출되어 불필요한 두 번째 초기화가 발생합니다. 이 예상되는 동작입니까? 나는 그것을 어떻게 억제 할 수 있는가?

답변

3

네, 펜촉에서 객체가 참조되는 경우로드 된 각 펜촉에 대해 -awakeFromNib이 호출됩니다. 설정을 두 번 반복하지 않으려면 인스턴스 변수를 설정하고 다음을 확인하십시오.

if (!alreadyDidNibLoadStuff) { 
    // do nib load stuff 
    alreadyDidNibLoadStuff = YES; 
}