我如何使方法在objective-c中获取无穷大论证?

时间:2013-12-02 20:29:18

标签: ios objective-c

我想让方法在objective-c中使用无穷大参数并添加这些参数。

2 个答案:

答案 0 :(得分:2)

我假设“无限”,你的意思是“尽可能多,因为记忆允许”。

传递NSArray类型的单个参数。用你想要的任意数量填充它。

如果所有参数都保证是非对象数据类型 - i。即int,long,char,float,double,struct和它们的数组 - 使用NSData可能更好。但是,识别二进制blob中的单个值将更加棘手。

既然你想把它们加起来,我认为它们就是数字。它们是否都是相同的数据类型?然后传递一个数组(和旧式C数组)或指针,以及许多元素。

编辑:现在我想到了,整个设计都很可疑。你想要一个方法,它接受任意大量的参数并将它们加起来。但是将它们传递给函数所需的打字工作量与将它们相加的工作量相当。如果您有varargs功能,Sum(a,b,c,d,e)的输入次数少于a+b+c+d+e。如果你有一个容器类(NSArray,NSData等),你必须遍历加数;当你这样做时,你也可以总结一下。

答案 1 :(得分:2)

这在有限的机器上是不可能的(即所有现有的计算机)。

如果你对一个变量但数量有限的论证很好,那就有C ... variadic argument functions