2014-04-09 20 views
2

文檔傳遞說,方法簽名必須爲以下:(ID),發送方被作爲選擇的目標 - 動作模式

- (IBAction)doSomething:(id)sender; 

但我可以用其他的簽名行動,如:

- (IBAction)doSomething:(UIButton *)button; // could write sender instead of 
              // button, but result is the same 

它的工作原理,但

  • 如果我在cmd +單擊選擇
  • 的Xcode不會重定向3210
  • 這違反了慣例。

是否有任何其他原因爲什麼在方法簽名中向發件人添加類型是一種不良做法?

+3

_could可以編寫發件人而不是按鈕,但結果是same_:這是因爲變量的名稱是不相關的,而不是方法簽名的一部分。 – mah

回答

1

這兩個語句都正常工作。

我懷疑cmd + click沒有重定向你,因爲你是cmd +單擊方法名稱中的參數。單擊參數時,cmd +單擊是不穩定的。我建議你堅持點擊方法名稱,它應該工作正常。我發現同樣的事情適用於如果你正在獲取文檔(選項+點擊)。

同樣,可以比發件人的id更具體。如果您使用圖形方法將按鈕連接到您的代碼,這實際上是一個選項:您可以選擇id或UIButton。

這裏的參數名稱「按鈕」是無關緊要的。你可以將它命名爲MountKilimanjaro,它會很好,因爲該參數/變量名稱是該方法的本地名稱。

希望這會有所幫助。

相關問題