2012-10-05 53 views
0

我知道函數是什麼,但我正在嘗試在我的項目中寫入一些函數。我剛剛從Lynda.com觀看了一個關於Objective-C的視頻系列,我從中得到了這個想法。ios - 創建函數

在視頻中解釋了我可以寫這樣的功能:

void declareWebView() 

但是,如果我把它寫像到我的代碼,該錯誤出現,並說我_webView和自我(作爲self.view)不可用。

如果我寫這樣的:

-(void) declareWebView 

然後,我沒有問題。

關於如何獲得第一個正確的任何想法? 據我所知,我不能用第二種寫作方式設置任何參數。

回答

2

第一個正如你所說的一個函數。它是Objective-C C部分的一部分,沒有連接到對象或類,所以變量self或對象的任何實例變量都沒有任何意義。你可以通過它是對象,雖然像這樣的變量:

void my_func(NSString *string, id someObject, int someInt); 

void my_func(NSString *string, id someObject, int someInt) 
{ 
    NSLog(@"string = %@, someObject = %@, someInt = %d",string,someObject,someInt); 
} 

第二個是一個方法,並在一個方法,你可以訪問自己和實例方法,訪問實例變量中。用「+」替換方法前面的「 - 」使其成爲一種類方法。在類方法中,您不能訪問實例變量,並且self引用類本身,而不是實例。

希望這會有所幫助!

+0

是的確 - 我會接受你的答案,當SO讓我:-) –

+0

謝謝!很高興我能幫上忙。 –

0

第一種方式是用C語言編寫的。第二種方式是用Objective-C編寫的。 Objective-C方法必須被聲明爲第二種方法。你不能直接在C函數中訪問你的對象的私有成員和屬性,但是你可以在Objective-C對象上使用訪問器方法並從C函數中調用它們。

+0

很酷的那種,我會堅持第二個然後:-) –