Мы все согласны с тем, что [NSNull нуль] полезно в качестве заполнителя, где требуется объект, как это предусмотрено выше. Но если он явно не используется при назначении для вашего объекта, его нельзя использовать в сравнении, ошибку, которую я сделал в прошлом.
id a;
NSLog(@"Case 1");
if (a == nil) NSLog(@"a == nil");
if (a == Nil) NSLog(@"a == Nil");
if ([a isEqual:[NSNull null]]) NSLog(@"a isEqual:[NSNull null]");
NSLog(@"Case 2");
a = [NSNull null];
if (a == nil) NSLog(@"a == nil");
if (a == Nil) NSLog(@"a == Nil");
if ([a isEqual:[NSNull null]]) NSLog(@"a isEqual:[NSNull null]");
Выход:
2014-01-31 10: 57: 11,179 MCDocsApp [13266: A0B] Случай 1
2014-01-31 10: 57: 11,179 MCDocsApp [13266: A0B ] A == ноль
2014-01-31 10: 57: 11,179 MCDocsApp [13266: A0B] A == ноль
2014-01-31 10: 57: 11,180 MCDocsApp [13266: A0B] Дело 2
2014-01-31 10: 57: 11.180 MCDocsApp [13266: a0b] a isEqual: [NSNull null]
Не получается лучше этого ---> http://nshipster.com/nil/ –