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?
nil
bedeutet eine Art NULL
fü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.
nil
und null
/ NULL
sind gleich - beide als Null definiert. Als Formalität nil
beim Codieren von Objective-C und NULL
beim Codieren regulärer C / C ++ - Anweisungen / Aufrufe verwenden. NSNull
ist 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.