2009-05-29 49 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 *)。