Quiero comparar el valor de an NSString
con la cadena "Incorrecto". Aquí está mi código:
NSString *wrongTxt = [[NSString alloc] initWithFormat:@"Wrong"];
if( [statusString isEqualToString:wrongTxt] ){
doSomething;
}
¿Realmente tengo que crear un NSString para "incorrecto"?
Además, puedo comparar el valor de un UILabel
's text
en una cadena sin asignar el valor de la etiqueta a una cadena?
Respuestas:
No, por qué no hacer:
if([statusString isEqualToString:@"Wrong"]){ //doSomething; }
El uso
@""
simplemente crea una cadena literal, que es válidaNSString
.Sí, puedes hacer algo como:
UILabel *label = ...; if([someString isEqualToString:label.text]) { // Do stuff here }
fuente
if ([statusString isEqualToString:@"Wrong"]) { // do something }
fuente
Brian, también vale la pena incluirlo aquí; los otros, por supuesto, tienen razón en que no es necesario declarar una variable de cadena. Sin embargo, la próxima vez que desee declarar una cadena, no es necesario que haga lo siguiente:
NSString *myString = [[NSString alloc] initWithFormat:@"SomeText"];
Aunque lo anterior funciona, proporciona una variable NSString retenida que luego deberá liberar explícitamente una vez que haya terminado de usarla.
La próxima vez que desee una variable de cadena, puede usar el símbolo "@" de una manera mucho más conveniente:
NSString *myString = @"SomeText";
Esto se liberará automáticamente cuando haya terminado con él, por lo que también evitará pérdidas de memoria ...
¡Espero que ayude!
fuente
new
o,copy
por ejemplo,newObject
(deNSDictionaryController
) omutableCopy
(deNSObject
) developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/…También puede usar los métodos de la clase NSString que también crearán una instancia liberada automáticamente y tendrán más opciones como formato de cadena:
NSString *myString = [NSString stringWithString:@"abc"]; NSString *myString = [NSString stringWithFormat:@"abc %d efg", 42];
fuente