0

重複の可能性:
NSArray arrayWithObjectsに終了nilが必要なのはなぜですか?

nil常に最後の項目としてを使用する必要があると言われていますarrayWithObjects

NSArray *wordList = [NSArray arrayWithObjects: @"hello", @"world", nil];

なぜをarrayWithObjects必要とせず、私たちnilのために追加するだけnilです。いくつかのフォーラムは、nilそれは他のメソッドの番兵として機能するためだと言いました...しかし、それはクラスのユーザーに関係するべきではない実装の問題ではありませんか?

たとえば、他の言語で必要な場合

 list = [1 ,2, nil]    # Ruby

配列を構築するために、それは幾分奇妙かもしれません。

4

1 に答える 1

1

自動nil挿入には、言語またはコンパイラの拡張が必要になるためです。

可変個引数リストの場合、実装が読み取りを停止するタイミングを知るためにターミネータが必要です。

幸い、コンパイラはセンチネル属性をサポートしているので、コンパイラの警告に注意を払えば、これは問題にはなりません。

于 2012-04-15T20:35:43.967 に答える