具有多个参数的函数
Posted
技术标签:
【中文标题】具有多个参数的函数【英文标题】:function with multiple arguments 【发布时间】:2010-04-01 12:08:13 【问题描述】:如何在 Objective-C 中的单个函数中传递多个参数?我想传递 2 个整数值,返回值也是整数。我想使用新的 Objective-C 语法,而不是旧的 C/C++ 语法。
【问题讨论】:
【参考方案1】:在objective-c 中它真的超级简单。这是您在 C 中执行此操作的方式:
int functName(int arg1, int arg2)
// Do something crazy!
return someInt;
这仍然适用于objective-c,因为它与C兼容,但objective-c的方法是:
// Somewhere in your method declarations:
- (int)methodName:(int)arg1 withArg2:(int)arg2
// Do something crazy!
return someInt;
// To pass those arguments to the method in your program somewhere:
[objectWithOurMethod methodName:int1 withArg2:int2];
祝你好运!
【讨论】:
当你说“超级简单”时,恐怕是自以为是。 “methodName ... withArg2”如何比“functName”更有意义?我宁愿将其描述为 Apple 推荐的方法。此外,人们总是可以做类似-(int)functName:(int)arg1 :(int)arg2
我同意,withArg2
几乎不是超级简单易读的。如果有人想要一个接受五个参数的方法怎么办?他们是否必须使用withArg3
、withArg4
等等?
语法是从 SmallTalk 借来的,允许您将参数名称与方法名称穿插,但文本前缀是可选的。必需的部分是冒号来指示每个位置参数。以下作品例如 -(void) moveTo:(int)x :(int)y 并且可以称为 [somebody moveTo:42 :64]【参考方案2】:
因为这仍然是 google-able 并且有比接受的答案更好的解决方案;不需要可怕的withArg2
- 只需使用冒号:
声明:
@interface
-(void) setValues: (int)v1 : (int)v2;
定义:
@implementation
-(void) setValues: (int)v1 : (int)v2
//do something with v1 and v2
【讨论】:
【参考方案3】:像这样:
int sum(int a, int b)
return a + b;
这样称呼:
int result;
result = sum(3, 5);
// result is now 8
More here
【讨论】:
对不起老板,我需要objective c中的代码,而不是简单c或c++中的代码 @Viral:那是 Objective-C。查看链接。 @Viral:我已经更新了您的问题,以便更清楚地了解您在寻找什么。请记住,您提出的问题越清晰,您获得的答案质量就越高。【参考方案4】:int add (int a, int b)
int c;
c = a + b;
return c;
link text
【讨论】:
您至少可以告诉 OP 您从 (en.wikibooks.org/wiki/Objective-C_Programming/syntax) 复制和粘贴的位置。 对不起,我需要客观 c 语言的答案,而不是 c 或 c++。以上是关于具有多个参数的函数的主要内容,如果未能解决你的问题,请参考以下文章