![](/img/trans.png)
[英]How can I pass variable number of arguments to method2 from method1 that takes a variable number of arguments?
[英]Is there a limit to the amount of arguments I can pass to a method?
我只是想知道我可以使用以下样式传递给Objective-C中的方法的参数数量是否有限制:
- (void)example:(int)i forTime:(int)i forDate:(NSDate *)date etc etc
这当然是假设的,但我发现知道这些限制背后的原因很有意思(例如URL中的字符限制等),我喜欢在StackOverflow上看到其他人对这些问题的看法
即使限制允许传递的参数数量,是否仍然可以将NSArray
的包含对象作为参数传递,然后使用objectAtIndex
在方法中调用这些对象?
我很快在C中编写了一个简短的程序来生成一个测试方法,并根据Hot Licks的建议,根据所需输入的参数数进行调用。 刚刚创建了一个需要1,000个NSNumber参数的方法,它运行正常。 在我的显示器上的Xcode中读取了两个页面,但它没有任何警告或任何事情。 可能会尝试10,000以后,但似乎没有任何限制,除了任何强加硬件功能等。
参数的数量没有限制
唯一的限制因素是给定体系结构上的进程的堆栈大小,因为方法参数被放在堆栈上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.