django_countries cities and ios xcode

cities - Xcode iOS compara cadenas



django countries and cities (5)

¿Cómo comparo el resultado de un sitio web con un resultado previsto?

@"document.getElementsByTagName(''body'')[0].outerHTML"

se predice que contiene:

<body>OK</body>

Pero siempre me da un error al decir que no coinciden. Usé este código a continuación para compararlos:

if (webresult == cmp){

luego muestra una alerta diciendo éxito. O en otro caso dirá error. Siempre va a otra cosa. Aquí está el bloque de código, por favor ayuda.

- (IBAction)displayresult:(id)sender { webresult = [webview2 stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName(''body'')[0].outerHTML"]; NSString *cmp = [[NSString alloc] initWithFormat:@"<body>OK</body>"]; if (webresult == cmp) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Logged in" message:@"Logged in, Proceeding to the game" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; [alert show]; [alert release]; } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:webresult delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; [alert show]; [alert release]; } }


Al comparar cadenas, debe usar isEqualToString:

if ([cmp isEqualToString:webresult]) { ... } else { ... }


No podemos combinar las cadenas con ==
Tenemos que usar isEqualToString:

if([str1 isEqualToString:str2]) { } else { }


Supongo que webresult es un NSString . Si ese es el caso, entonces quieres usar:

if ([webresult isEqualToString:cmp]) {

en lugar de:

if (webresult == cmp) {

como el método anterior comprueba si las cadenas son iguales carácter por carácter, mientras que el método inferior comprueba si las dos cadenas son el mismo puntero. ¡Espero que ayude!


para Swift 4.0

if str1==str2{ //both string are equal } else{ //do something expression not true }


if (webresult == cmp)

Aquí, == verifica si webresult, cmp apuntan a la misma referencia o no. En su lugar, debe comparar el valor del objeto utilizando NSString::isEqualToString.

if ( [ cmp isEqualToString:webresult ]) { // .. }else { // .. }

Tenga en cuenta que isEqualToString es una buena opción porque devuelve un valor booleano.