Dies ist ein Beispielcode:
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]");
Wann sollte ich nil, NULL und [NSNull null] verwenden?
nilbedeutet eine Art NULLfür objc Instanz. Sie können also einen bestimmten Wert markieren, der für eine Objektinstanz oder einen generischen Zeiger vorgesehen ist. Im Hinblick auf Typmanagement und Sicherheit wird Ihnen dies sehr helfen.
nilund null/ NULLsind gleich - beide als Null definiert. Als Formalität nilbeim Codieren von Objective-C und NULLbeim Codieren regulärer C / C ++ - Anweisungen / Aufrufe verwenden. NSNullist jedoch etwas ganz anderes. Es ist ein Singleton-Objekt, das als Platzhalter dient, um "nichts" in z. B. NSDictionarys darzustellen, in denen Null- / Null-Zeiger nicht zulässig sind.