2012-08-16 122 views
0

可能重複:
Method Syntax in Objective C混淆方法聲明

我是很新的iPhone開發和使用我的X代碼

感到困惑的方法聲明iPhone開發

請幫我確定這裏的方法名稱是什麼。

tableViewwillSelectRowAtIndexPath

請解釋一下你是怎麼認識它。提前致謝。

-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    NSUInteger row = [indexPath row]; 
    if (row == 0) return nil; 
    return indexPath; 
} 

回答

1

方法簽名是tableView:willSelectRowAtIndexPath:。在這裏,您可以閱讀Objective C中的方法名稱 - http://cocoawithlove.com/2009/06/method-names-in-objective-c.html詢問更多,如果您不確定原因和發生的情況。

+0

(+1),但是......你可能會說,鑑於UIKit中的情況下,更具體的方法名是' - [的UITableViewDelegate的tableView:willSelectRowAtIndexPath:]'。我知道這是一個挑剔的問題,但知道某個方法屬於哪個類通常很有用。當然,相反的觀點是,我們不知道這是我所指的UIKit方法還是OP自己的設計。 – idz 2012-08-16 08:33:59

+0

是的,你說得對,但是如果我們從選擇的角度來看方法名稱,那是對的。它比這更復雜,但是... :) – robertvojta 2012-08-16 08:40:53

-1

方法名是 -tableView:willSelectRowAtIndexPath:

後的詞語 ':' 之前 '空間' 是參數

字內的()是參數類型

PS:當然第一個()是返回類型

1

方法名稱是– tableView:willSelectRowAtIndexPath:您可以通過按住alt/option鍵輕鬆知道它在Xcode上,然後單擊想要獲取信息的方法。

編輯:

– tableView:willSelectRowAtIndexPath:是一種方法 「簽名/名稱」,它被聲明在代碼

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath

參數

tableView類型是UITableView

通知委託人即將進行選擇的表視圖對象。

indexPath類型是NSIndexPath

索引路徑定位在的tableView的行。

Return Value()類型是NSIndexPath

,確認或改變所選擇的行的索引路徑中的物體。如果您希望選擇另一個單元格,則返回indexPath之外的其他NSIndexPath對象。如果您不想選擇該行,則返回nil。

- 所看到here

+0

感謝您的回答,但我仍然困惑於像「tableView:willSelectRowAtIndexPath」這樣的方法名稱在objective-c中是一個有效的名稱,因爲許多語言如java,C,在方法簽名聲明中,C++不允許使用任何特殊字符。 – 2012-08-16 08:48:49

+0

目標C消息發送不使用java/C/C++的語法和規則等。它類似於Smalltalk消息。這些名稱由多個部分組成,參數不在C++中的名稱後面的括號中指定,而是與名稱交替顯示。請注意,將它們視爲方法名稱甚至稍微不準確。技術上,方法沒有名稱,它們是響應消息而執行的無名代碼。這些名稱是消息的名稱。但實際上將它們視爲方法名稱是很常見的。 – 2012-08-16 19:55:15