有人可以为我澄清一下:
当有多个参数时,参数在冒号后的方法名称中声明.参数在声明中将名称分开,就像在消息中一样.例如:
- (void)setWidth:(float)width height:(float)height;
Run Code Online (Sandbox Code Playgroud)
所以在上面:
但为什么它是高度的:(浮动)高度; 而不仅仅是:
- (void)setWidth: (float)width (float)height;
Run Code Online (Sandbox Code Playgroud)
Objective-C 没有命名参数.它也没有"关键字参数".
Objective-C使用所谓的"交错参数".也就是说,方法的名称与参数交错,以便产生更具描述性和可读性的代码.
[myObject setWidth:w height:h];
Run Code Online (Sandbox Code Playgroud)
上面的描述有效地告诉myObject将宽度设置为w,将高度设置为h.
在上面的例子中,方法的名称 - 它的选择器 - 是完全正确的setWidth:height:.不多也不少.
这一点都在Objective-C指南中进行了解释.
这只是 Objective-C 的一个功能,可以让您在阅读方法调用时更轻松,如下所示:
[myObject setWidth:w height:h];
Run Code Online (Sandbox Code Playgroud)
您可以省略标签(第一个标签除外),因此如果您确实愿意,您可以:
-(void)setWidth:(float)width :(float)height
{
...
}
Run Code Online (Sandbox Code Playgroud)
并将其用作:
[myObject setWidth:w :h];
Run Code Online (Sandbox Code Playgroud)
但这并不真正符合 Objective-C 语言的精神。这些标签的全部目的是使这些调用更容易理解,而无需查找方法定义。
| 归档时间: |
|
| 查看次数: |
3196 次 |
| 最近记录: |