ios objective-c xcode nsstring

ios - cómo comprobar si NSString es nulo o no



objective-c xcode (5)

Esta pregunta ya tiene una respuesta aquí:

Quiero verificar el tiempo en que un NSString es nulo o no. Im la asignación de una matriz JSON. Después de asignar ese valor de cadena es <null> . Ahora quiero comprobar si esta cadena es nula o no. Así que me puse así

if (myStringAuthID==nil) pero esta declaración if siempre es falsa. ¿Cómo puedo comprobar una cadena para null. por favor, ayúdame

Gracias


Aquí es parte de una categoría de cadena que he creado:

@interface NSString (Enhancements) +(BOOL)isNullOrEmpty:(NSString *)inString; @end @implementation NSString (Enhancements) +(BOOL)isNullOrEmpty:(NSString *)inString { BOOL retVal = YES; if( inString != nil ) { if( [inString isKindOfClass:[NSString class]] ) { retVal = inString.length == 0; } else { NSLog(@"isNullOrEmpty, value not a string"); } } return retVal; } @end


Como eso:

[myString isEqual: [NSNull null]];


Creo que es mejor si lo verificas antes de enviarlo a una NSString o lo que sea, tienes diferentes opciones, las anteriores son correctas, pero prefiero esto:

id NilOrValue(id aValue) { if ((NSNull *)aValue == [NSNull null]) { return nil; } else { return aValue; } }

Al usar este fragmento de código (preste atención a la función C) antes de pasar el valor a un puntero, puede pasar con seguridad un valor o nulo si el valor está en NSNull. Pasar nil es genial, porque si envías un mensaje a un objeto nulo, no produce una excepción. También puede verificar el tipo de clase con -isKindOfClass .


Hay tres interpretaciones posibles de NSString "null":

  1. someStringPtr == nil
  2. (id)someStringPtr == [NSNull null]
  3. someStringPtr.length == 0

Si puede tener la posibilidad de los 3, el tercer cheque subsume el primero, pero no conozco un cheque simple para los tres.

En general, JSON devolverá [NSNull null] para un null JSON null , pero algunos kits pueden devolver @"" (longitud == 0) en su lugar. nil nunca se utilizará en iOS, ya que no se puede colocar en matrices / diccionarios.


Probar if(myString == [NSNull null]) . Eso debería evaluarlo correctamente.