7

我只是想知道我可以使用以下样式传递给Objective-C中的方法的参数数量是否有限制:

- (void)example:(int)i forTime:(int)i forDate:(NSDate *)date etc etc

这当然是假设的,但我只是觉得了解这些限制背后的原因很有趣(例如 URL 中的字符限制等),我喜欢在 StackOverflow 上看到其他人对此类问题的看法

即使对允许传递的参数数量有限制,是否仍然可以将NSArray' 包含的对象作为参数传递,然后使用方法从数组中调用这些对象objectAtIndex

4

2 回答 2

3

根据 Hot Licks 的建议,我很快用 C 语言编写了一个简短的程序来生成测试方法并根据所需输入的参数数量进行调用。刚刚制作了一个需要 1,000 个 NSNumber 参数的方法,它运行良好。在我的显示器上的 Xcode 中占用了两页,但它运行时没有任何警告或任何东西。以后可能会尝试 10,000 次,但似乎除了硬件功能等施加的任何限制外,没有其他限制。

于 2012-09-06T21:21:51.750 回答
0

不,参数的数量没有限制

唯一的限制因素是给定架构上进程的堆栈大小,因为方法参数放在堆栈上。

于 2012-09-06T08:13:39.513 回答