NULL,nil,Nil,NSNullの違い

909 ワード

1.NULL
NULLはC言語の空のポインタオブジェクトです
char *c = NULL;

2.nil
NilはObjective-Cでしか使用されない、OCオブジェクトの空の字面量、対応するidタイプを表す
NSString *someStr = nil;
NSNumber *someNum = nil;
NSArray *someArr = nil;
 ....

3.Nil
NilはObjective-Cのタイプの空の字面の量で、対応するのはClassのタイプです
Class someCls = Nil;
Class arrCls = [NSArray class];
Class strCls = [NSString class];

4.NSNull
[NSNull null]はオブジェクトインスタンスを表しますが、このインスタンスは空です.主な理由は,OCセットに空のオブジェクトインスタンスを配置する必要がある場合,nilを格納として使用できないためである.この場合、[NSNull null]インスタンスを使用して操作することができます.
**nilは、集合シーケンスの終了を表すために使用されます.**
[NSArray arrayWithObjects:@"one", @"two", nil];

集合に空のオブジェクトを正しく追加
NSMutableArray *arr = [NSMutableArray new];
NSNull *empty = [NSNull null];
[arr addObject:empty];

// [arr addObject:nil];       

リファレンスリンク