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 で 2 ページ使用しましたが、警告も何も表示されずに実行されました。後で10,000を試すかもしれませんが、ハードウェアの機能などによって課される制限以外には制限がないようです.

于 2012-09-06T21:21:51.750 に答える
0

いいえ、引数の数に制限はありません

メソッドのパラメーターはスタックに置かれるため、唯一の制限要因は、特定のアーキテクチャーでのプロセスのスタック サイズです。

于 2012-09-06T08:13:39.513 に答える