目标c中的第一个参数名称?

Tom*_*Tom 21 parameters syntax message objective-c

我有一个方法:

- (void)pan:(double)lat longitude: (double) lon{...}

当我调用它时Xcode显示如下:

[self pan:(double) longitude:(double)]

是不是可以设置第一个参数,像第二个(longitude),Xcode可以这样显示:

[self pan: latitude:(double) longitude:(double)]

在调用时我无法看到第一个参数的名称,这让我非常讨厌.这是我的错还是不可能?

Car*_*rum 16

做你要求的正常方法是声明你的方法,如:

-(void)panLatitude:(double)lat longitude:(double)lon;
Run Code Online (Sandbox Code Playgroud)

也就是说,在开头包含方法名称的第一个参数的标签.你会像以下一样使用它:

[self panLatitude:x longitude:y];
Run Code Online (Sandbox Code Playgroud)

  • 所以更改方法名称,因为不可能为第一个参数定义名称? (3认同)
  • @Tom,参数实际上没有名称,但是,您需要更改方法名称. (3认同)
  • `panToLatitude:经度:`在这里是恰当和正确的.(添加"和"是好的,但通常是多余的.当属性与`setValue:andReloadURL:`无关时更合适.但在大多数情况下我不鼓励包括`和`).正如Carl所说,ObjC没有命名参数.它只包含选择器中的参数.`panToLatitude:经度:`是一个与`panToLongitude:latitude:`完全不同的方法. (2认同)

小智 10

您只需要以不同方式命名方法.

- (void)panToLatitude: (double)lat longitude: (double)lon;
Run Code Online (Sandbox Code Playgroud)

Objective-C实际上没有命名参数.该方法的名称是(在您的示例中,不是我上面的版本),-pan:longitude:并且该语言使用中缀表示法来传递参数.


bry*_*mac 5

请记住,objective-c是关于向对象发送消息 - 消息是args.因此,消息的第一部分通常包含动词和第一部分数据.它应该很容易阅读.

不要将方法名称视为"pan".在C#和Java中,方法名称为Pan,args为经度和纬度.你的方法应该是这样的.

- (void) panToLatitude:longitude:
Run Code Online (Sandbox Code Playgroud)

该字符串是您的函数(消息)名称.可以把它想象成发送一个字典的消息,第一个项目包含动词.我来自C langs背景,所以这是一种不同的思维方式.