Это пример кода:
NSDictionary *myDictionary = [NSDictionary dictionary];
NSNumber *myNumber = [myDictionary valueForKey: @"MyNumber"];
NSLog(@"myNumber = %@", myNumber); // output myNumber = (null)
if (myNumber == nil)
NSLog(@"test 1 myNumber == nil");
if (myNumber == NULL)
NSLog(@"test 2 myNumber == NULL");
if ([myNumber isEqual:[NSNull null]])
NSLog(@"test 3 myNumber == [NSNull null]");
Когда мне следует использовать nil, NULL и [NSNull null]?
nilозначает вид NULLдля объекта. Таким образом, вы можете отметить конкретное значение, предназначенное для экземпляра объекта или общего указателя. С точки зрения управления типами и безопасности, это вам очень поможет.
nilи null/ NULLодинаковы - оба определены как ноль. В качестве формальности используйте nilпри кодировании Objective-C и NULLпри кодировании обычных операторов / вызовов C / C ++. NSNullоднако это нечто совершенно другое. Это одноэлементный объект, который служит заполнителем для представления «ничего», например, в NSDictionarys, где указатели nil / null недопустимы.