2009-05-29 90 views
0

需要幫助,我需要了解下面的代碼一些幫助:在瞭解目標C代碼

  1. 是什麼意思「@」在@「刷新」

    按鈕= MakeTestButton(& button_rect ,@「重新加載」,內容); [button setTarget:web_view]; [button setAction:@selector(reload :)];

  2. 我在哪裏可以找到「@selector(reload :)」的定義?

回答

5
  1. 字符串常量被聲明爲在目標c @"some text"。這會創建一個NSString的實例。
  2. 我建議你閱讀蘋果的documentation on selectors。基本上,@selector(reload:)將獲得一個指針,指向當對象收到reload:消息時將被調用的方法。
+2

它更準確的說@selector(重裝:)給你的方法名*。你可以得到一個指向某個方法的指針,但這是完全不同的,並且工作方式不同。 – Chuck 2009-05-29 22:00:13

4

@selector是一種內置於該語言的原語。將@selector(reload :)想象爲「方法的名稱」重新加載:'「。它返回一個SEL,然後你可以傳遞給一個函數,然後用它來調用方法「reload:」。在你的代碼的上下文中,當你點擊按鈕時,該按鈕將調用[web_view reload:self]。

In @「Reload」,@表示它是一個NSString實例,而不是一個(char const *)。