Oto przykładowy kod:
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]");
Kiedy należy używać nil, NULL i [NSNull null]?
nil
oznacza rodzaj NULL
instancji for objc. Możesz więc oznaczyć określoną wartość, która jest przeznaczona dla instancji objc lub wskaźnika ogólnego. Ze względu na zarządzanie typami i bezpieczeństwo, będzie to bardzo pomocne.
nil
i null
/ NULL
są takie same - oba zdefiniowane jako zero. Jako formalność, używaj nil
podczas kodowania Objective-C i NULL
podczas kodowania zwykłych instrukcji / wywołań C / C ++. NSNull
jest jednak czymś zupełnie innym. Jest to obiekt typu singleton, który służy jako symbol zastępczy reprezentujący „nic”, np. W NSDictionarys, w których wskaźniki nil / null nie są dozwolone.