在目标C中具有多个参数的方法

时间:2012-01-29 19:44:43

标签: objective-c

如果您采用此方法调用(来自其他post

- (int)methodName:(int)arg1 withArg2:(int)arg2
{
    // Do something crazy!
    return someInt;
}

withArg2实际上是否曾用于此方法中的任何内容?

3 个答案:

答案 0 :(得分:5)

withArg2是方法名称的一部分(如果你想引用文档中的方法,它通常不带参数methodName:withArg2:编写),所以不,它不用于任何内部方法。

答案 1 :(得分:2)

正如Tamás所指出的那样,withArg2是方法名称的一部分。如果你在C中编写一个具有完全相同名称的函数,它将如下所示:

int methodNamewithArg2(int arg1, int arg2)
{
  // Do something crazy!
  return someInt;
}

来自其他编程语言,Objective-C语法起初可能看起来很奇怪,但过了一段时间,您将开始了解它如何使您的整个代码更具表现力。如果您看到以下C ++函数调用:

anObject.subString("foobar", 2, 3, true);

并将其与类似的Objective-C方法调用进行比较

[anObject subString:"foobar" startingAtCharacter:2 numberOfCharacters:3 makeResultUpperCase:YES];

我应该清楚我的意思。这个例子可能是人为的,但重点是要表明将下一个参数的含义嵌入到方法名中允许编写非常易读的代码。即使您选择了可怕的变量名称或使用文字(如上例所示),您仍然可以理解代码而无需查找方法文档。

答案 2 :(得分:0)

您可以按如下方式调用此方法:

int i=[self methodName:arg1 withArg2:arg2];

这只是iOs使代码更易于阅读的方式。