2010-01-29 38 views
0

我在視圖控制器中有一個視圖插座。它的定義是這樣的:在UIViewController中訪問沒有self.var的對象類成員

IBOutlet MyView * view; 

MyView的類中有一些實例方法。我試圖在這樣的視圖控制器使用它們:

int x = [view someMethod:4]; 

Xcode中不顯示任何警告,不生成任何運行時錯誤,但它並沒有在所有調用該方法。 當我這樣調用方法:

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

這突然的作品。這是爲什麼?爲什麼我不能直接訪問視圖變量?

回答

0

當您撥打[view someMethod:4]時,您的view可能未初始化(即= nil),因此沒有任何反應。

但是,致電self.view將保證調用-loadView,這反過來保證您的view被初始化,因此它的工作原理。

+0

謝謝,現在很清楚:) 我可以在UIViewController構造函數中顯式調用loadView嗎? – Dor

+0

@Dor:你可以,但你不應該。 – kennytm