2011-03-25 3 views
2

[self view]를 호출하면 내 관심이 생겼습니다. 또는 [자체 창]; NSViewController 또는 NSWindowController의 init 메소드 내에서, 모든 IBOutlet이 init 메소드에서 바로 사용 가능하게됩니다.코드 디자인 질문 : [자체보기]를 사용하고 있습니다. 또는 [자체 창]; 나쁜 습관?

이렇게하는 것이 좋지 않다고 생각하십니까?

NSWindowController의 경우 콘센트가 연결되어 있음을 보장하기 위해 "windowDidLoad"메서드를 사용하는 것이 좋습니다. 하지만 NSViewController는 어떻습니까?

답변

2

예; 펜촉의 어떤 물체에도 절대적으로 접근 할 필요가있을 때까지 펜촉이 적재되도록하지 마십시오. 제어기가 게으르도록 설계하십시오.

NSWindowController의 경우 콘센트가 [그때까지] 연결되도록 [windowDidLoad] 메서드를 [내 설정을하는 것이 좋습니다]라고 가정합니다. 하지만 NSViewController는 어떻습니까?

loadView을 재정의하십시오. [super loadView]을 보낸 다음 뷰가로드되어야하는 작업을 수행하십시오.

편집 : ughoavgfhw 메모에 따르면 awakeFromNib도 좋은 선택 일 수 있습니다.

2

IBOutlet은 초기화 메소드에서 절대로 연결되지 않습니다. 닙에서 오브젝트를 사용하여 무언가를하고 싶다면 awakeFromNib을 사용해야하며, NSWindowController의 특정 경우에는 windowDidLoad을 사용해야합니다.

+0

그는 질문에 "view"또는 "window"를 보내는 VC 또는 WC가 펜촉을로드하게합니다. 메시지가 뷰 또는 창을 반환 할 때까지 펜촉이 완전히로드되어 모든 콘센트가 부작용으로 연결됩니다. –

관련 문제