Objective c 如何访问某些方法的目标C未命名参数?

Objective c 如何访问某些方法的目标C未命名参数?,objective-c,methods,syntax,parameters,Objective C,Methods,Syntax,Parameters,我在网上找到的关于Objective C中方法参数的所有信息都是可选的,但是如果我没有标记某个方法的每个输入参数,我如何访问它们呢 下面是我尝试做的一个例子: - (float) divNum1: (int) AndNum2: (int); 然后它甚至没有编译,说 之前需要一个标识符 因此,在实现上述方法时,我希望访问每个输入参数: - (float) divNum1: (int) AndNum2: (int) { return <first parameter> / &

我在网上找到的关于Objective C中方法参数的所有信息都是可选的,但是如果我没有标记某个方法的每个输入参数,我如何访问它们呢

下面是我尝试做的一个例子:

 - (float) divNum1: (int) AndNum2: (int);
然后它甚至没有编译,说

之前需要一个标识符

因此,在实现上述方法时,我希望访问每个输入参数:

- (float) divNum1: (int) AndNum2: (int)
{
    return <first parameter> / <second parameter>;
}
-(float)divNum1:(int)和num2:(int)
{
返回/;
}

我知道如何使用标签解决这个问题,我需要的是解决这个问题的方法,而不必命名每个参数。

交错参数名称是可选的,而不是参数名称

无论如何,这里有一个声明:

- (float)div:(int)num1:(int)num2;
[self div:2 :3];
- (float)div:(int)num1:(int)num2 {
    return (float)num1 / num2;
}
用法

- (float)div:(int)num1:(int)num2;
[self div:2 :3];
- (float)div:(int)num1:(int)num2 {
    return (float)num1 / num2;
}
实施

- (float)div:(int)num1:(int)num2;
[self div:2 :3];
- (float)div:(int)num1:(int)num2 {
    return (float)num1 / num2;
}
该方法本身称为
-div::
。(注意两个冒号)

但是苹果

如果您不喜欢这样,可以尝试类似swift的方法,在这里可以省略方法的许多部分


您应该将
-(float)div:(int)num1与:(int)num2一起使用

您搞错了方法的哪一部分是可选的。伪参数方法名称是可选的,但所有物理参数都必须存在。考虑以下方法

- (void)parameterOne:(int)p1 :(int)p2
//                          ^^^
{
    int p3 = p1 * p2;
}
这个方法可以这样调用

[self parameterOne:10 :20];
如您所见,方法名称的相应部分是可选的,但参数名称不是。

标签是类型之前的内容。您可以省略它们(第一个除外,因为它是方法的名称)。因此,您可以声明:

- (float) divNum1: (int) a : (int) b;
定义如下:

- (float) divNum1: (int) a : (int) b {
    return (float)a /(float)b;
}
[self divNum1:5 :6];
这样称呼它:

- (float) divNum1: (int) a : (int) b {
    return (float)a /(float)b;
}
[self divNum1:5 :6];

您不能忽略类型后面的名称,因为这些是内部名称,由方法体使用。

问题在于您不理解Objective-C方法声明的语法?可选部分并不是您认为是可选的部分。感谢所有的答案,现在我明白了我的错误。可选的是方法名称的附加部分,而不是参数名称。更清楚的是,方法的名称是
div::
(注意两个冒号-它们是方法名称的一部分)。