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]?
nilsignifica una especie de NULLinstancia 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.
nily null/ NULLson iguales, ambos definidos como cero. Como formalidad, úsela nilal codificar Objective-C y NULLal codificar declaraciones / llamadas regulares de C / C ++. NSNullSin 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.