如何将参数传递给方法

时间:2011-03-18 18:45:48

标签: iphone

例如

add(int a,int b)这里我们传递两个参数int a,int b,

我们可以用不同的数据类型传递n参数,如int,float,long, 有可能吗?

我的意思是我只需要编写一个处理n个参数的方法。

3 个答案:

答案 0 :(得分:4)

是的,可以将具有不同数据类型的参数传递给Objective-C方法。我假设您正在谈论Objective-C,因为问题是标记为iphone。

例如,您可以使用以下方法:

- (void)foo:(int)foo bar:(float)bar baz:(long)baz {
    // ...
}

如果你在谈论C,你可以有一个功能:

void myfunc(int foo, float bar, long baz) {
    // ...
}

如果你想编写具有可变大小参数列表的函数(因此可以使用1个参数,或2个参数,或3,......),我建议你看一下这个blog post which discusses variable argument lists in Objective-C/Cocoa或{ {3}}

答案 1 :(得分:0)

- (int)add:(int)number1 to:(int)number2 {
         return number1 + number2;
}

使用[obj add:2 to:4]调用它;其中obj是接收添加消息的对象。

您可以使用上述任何类型的参数来实现您的想法。例如:

- (void)add:(int)number1 to:(float)number2 {
         //print result here
}

标准类型转换等适用于任何编程语言。

如果您正在讨论完全任意数量的参数,请查看Objective C(Google it)中的Variadic函数。第一个搜索结果页面中有很多很好的教程。

答案 2 :(得分:0)

一切皆有可能,但我确信它需要一些严重的黑客才能让它适用于可变数据类型。如果您可以将需求更改为可变数量的特定数据类型,那么您应该查看“Cocoa with Love”的优秀教程:variable-argument-lists-in-cocoa