NSDictionaryやNSArrayの要素としてnilを格納することはできない。
nilの代わりに[NSNull null]を格納する。
[NSNull null]はシングルトン。ただ一つのインスタンスを参照する。
[NSNull null] と nil の比較はできない。
比較の例
1 2 3 4 5 6 7 8 |
NSDictionary *aDictionary = ... NSString *aName = [aDictionary objectForKey:@"name"]; NSString *aMessage; if (![aName isEqual:[NSNull null]) { aMessage = [aName stringByAppendingString:@" has passed."]; } |
NSLogの出力の違い
1 |
NSLog(@"nil:%@", nil); // nil:(null) |
1 |
NSLog(@"[NSNull null]:%@", [NSNull null]); // [NSNull null]:<null> |