2013-11-14 59 views
-2

我在驅動程序的開發新手,所以我想知道到底是什麼下面一行在Objective-C的意思Objective-C代碼中的[self sendmsg:...]是什麼意思?

[self sendMsg:[NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer] :YES]; 
+5

你可以試一下它的意思嗎 – Wain

+0

看一看:[如何在Objective-C中調用方法?](http://stackoverflow.com/questions/591969/how-can- i-call-a-method-in-objective-c) – Amar

+0

基本的句法問題可以從書本或教程中學習,而不是在Stack Overflow上提出。 – 2013-11-14 15:21:45

回答

2

這是一個複合語句可以分爲兩個語句

[self sendMsg:[NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer] :YES]; 

變爲:

NSData *message = [NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer]; 
[self sendMsg:message :YES]; 

但沒有與此代碼約定問題。雖然方法名稱不必與參數插入,但最好做到這一點。在這種情況下,沒有最後的之前的方法名稱的一部分「:」,方法選擇(簽名)是:

sendMsg:: 

倒不如聲明:

- (void)sendMsg:(NSData *)msg option:(BOOL)option; 

這將有選擇器(簽字):

sendMsg:option: 

,並將所得的呼叫會更理解的,因爲:

NSData *message = [NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer]; 
[self sendMsg:message option:YES]; 

這意味着使用參數messageYES調用具有相同類實例的選擇器sendMsg:option:的方法(發送消息)。

0

[self sendMsg]。它是一種在ios中調用方法的方法。 使用sendMsg指定要調用的方法的名稱,self是調用該方法的實體。

+3

只是爲了澄清:這是一種調用方法 2013-11-14 15:07:25