我只是想知道我可以使用以下样式传递给Objective-C中的方法的参数数量是否有限制:
- (void)example:(int)i forTime:(int)i forDate:(NSDate *)date etc etc
这当然是假设的,但我发现知道这些限制背后的原因很有意思(例如URL中的字符限制等),我喜欢在StackOverflow上看到其他人对这些问题的看法
即使对允许传递的参数数量有限制,是否仍然可以将包含对象的NSArray
作为参数传递,然后只使用方法中的数组调用这些对象objectAtIndex
?
答案 0 :(得分:3)
根据Hot Licks的建议,我很快在C中编写了一个简短的程序来生成一个测试方法,并根据所需输入的参数数进行调用。刚刚创建了一个需要1,000个NSNumber参数的方法,它运行正常。在我的显示器上的Xcode中读取了两个页面,但它没有任何警告或任何事情。可能会稍后尝试10,000,但似乎没有任何限制,除了硬件功能等强加的任何限制。
答案 1 :(得分:0)
参数数量没有限制
唯一的限制因素是给定体系结构上进程的堆栈大小,因为方法参数被放在堆栈上。