これが私が見たコンテキストです:
NSMutableArray *controllers = [[NSMutableArray alloc] init];
for (unsigned i = 0; i < kNumberOfPages; i++) {
[controllers addObject:[NSNull null]];
}
なぜその場所でゼロにしないのですか?
これが私が見たコンテキストです:
NSMutableArray *controllers = [[NSMutableArray alloc] init];
for (unsigned i = 0; i < kNumberOfPages; i++) {
[controllers addObject:[NSNull null]];
}
なぜその場所でゼロにしないのですか?
Appleから直接:
NSNullクラスは、nilが値として禁止されている状況(通常は配列やディクショナリなどのコレクションオブジェクト)でnull値を表すために使用するシングルトンオブジェクトを定義します。
したがって、あなたの例では、まさにそれが起こっているのです。プログラマーは、nullオブジェクトをコントローラー配列に配置することを選択しています。nilは値として許可されていません。
またはにnil
値を追加することはできません。値を格納する必要がある場合は、そのスニペットに示されているように、ラッパークラスを使用する必要があります。これはドキュメントで指定されています。NSArray
NSMutableArray
nil
NSNull
コレクション クラスはNSArray
、値NSDictionary
を含むことができません。のプレースホルダとして特別に作成されました。コレクション クラスに入れることができ、場所を取るだけです。nil
NSNULL
nil
NSNull
シングルトン オブジェクトを定義します。つまり、NSNull ( を使用して作成[NSNull null]
) のインスタンスは 1 つしか存在しませんが、好きなだけ多くの場所で使用できます。
NSNull クラスは、nil が値として禁止されている状況 (通常は、配列や辞書などのコレクション オブジェクト) で null 値を表すために使用するシングルトン オブジェクトを定義します。
NSArray または NSMutableArray に nil 値を追加することはできません。nil 値を格納する必要がある場合は、NSNull ラッパー クラスを使用する必要があります。
NSArray や NSDictionary などのコレクション クラスに nil 値を含めることはできません。NSNULL は、特に nil のプレースホルダーとして作成されました。コレクションクラスに入れることができ、場所を取るだけです。
参考までにリンク先をご覧ください
nilは、オブジェクトの配列の後の配列の終わりを示します。