Este es un código de muestra:
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]");
¿Cuándo debo usar nil, NULL y [NSNull null]?
nil
significa una especie de NULL
instancia objc. Por lo tanto, puede marcar un valor específico para la instancia objc o el puntero genérico. En vista de la gestión de tipos y la seguridad, esto le ayudará mucho.
nil
y null
/ NULL
son iguales, ambos definidos como cero. Como formalidad, úsela nil
al codificar Objective-C y NULL
al codificar declaraciones / llamadas regulares de C / C ++. NSNull
Sin embargo, es algo completamente diferente. Es un objeto singleton que sirve como marcador de posición para representar "nada" en, por ejemplo, NSDictionarys donde no se permiten punteros nulos / nulos.