traducir source parameter name left cannot iphone objective-c string null

iphone - left - value cannot be null. parameter name source traducir



¿Cómo puedo probar un NSString por ser nulo? (6)

Puede encontrar más información sobre la cadena objetivo C aquí.

+ (BOOL ) stringIsEmpty:(NSString *) aString { if ((NSNull *) aString == [NSNull null]) { return YES; } if (aString == nil) { return YES; } else if ([aString length] == 0) { return YES; } else { aString = [aString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; if ([aString length] == 0) { return YES; } } return NO; } + (BOOL ) stringIsEmpty:(NSString *) aString shouldCleanWhiteSpace:(BOOL)cleanWhileSpace { if ((NSNull *) aString == [NSNull null]) { return YES; } if (aString == nil) { return YES; } else if ([aString length] == 0) { return YES; } if (cleanWhileSpace) { aString = [aString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; if ([aString length] == 0) { return YES; } } return NO; }

¿Puedo simplemente usar

if(myString == nil)

Por alguna razón, una cadena que sé que es nula, está fallando en esta declaración.


¿Es posible que tu cadena no sea nil y, en cambio, solo una cadena vacía? Podría intentar probar si [myString length] == 0 .


Parece que mi cadena en el depurador estaba informando como (nulo) pero eso se debió a cómo se estaba asignando, lo arreglé y ahora está informando como nulo. Esto solucionó mi problema.

¡Gracias!


La longitud del aviso = 0 no necesariamente significa que es nulo

NSString *test1 = @""; NSString *test2 = nil;

Ellos no son los mismos. Aunque ambos la longitud son 0.


usted puede verificar su cadena usando este

if(myString==(id) [NSNull null] || [myString length]==0 || [myString isEqualToString:@""]) { //String is null or bad response }


Encontré este problema hoy. A pesar de asignar una cadena para ser nil: NSString *str = nil; , la prueba if (str == nil) devolvió FALSE ! Sin embargo, cambiar la prueba a if (!str) funcionó.