Это пример кода:
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 недопустимы.