2010-01-29 7 views
0

뷰 컨트롤러에 뷰 콘센트가 있습니다. 다음과 같이 정의되어 :UIViewController에서 self.var없이 객체 클래스 멤버에 액세스

IBOutlet MyView * view; 

MYVIEW 클래스가 일부 인스턴스 메소드가 있습니다.

int x = [view someMethod:4]; 

엑스 코드, 아니 런타임 오류가 발생하지 않습니다 경고를 표시하지 않습니다, 그러나 그것은 모든 방법을 호출하지 않습니다 :이 같은 뷰 컨트롤러에서 사용하려고합니다. 다음과 같은 메서드를 호출하면 :

int x = [self.view someMethod:4]; 

갑자기 작동합니다. 왜 그런가요? 변수에 직접 액세스 할 수없는 이유는 무엇입니까?

답변

0

[view someMethod:4]으로 전화하면 view이 초기화되지 않을 수 있습니다 (즉, = nil). 따라서 아무 일도 발생하지 않습니다.

그러나 self.view을 호출하면 -loadView을 호출 할 수 있으며 따라서 view이 초기화되므로 작동합니다.

+0

고마워, 지금은 분명하다 :) UIViewController 생성자에서 loadView를 명시 적으로 호출 할 수 있습니까? – Dor

+0

@ 도울 : 할 수는 있지만 할 수는 없습니다. – kennytm

관련 문제