2010-10-29 6 views
2

Je vais fou - ces 2 chaînes sont identiques, mais le code revient comme eux étant différent !:Comparaison des 2 chaînes identiques

NSLog(@"nearbyAirport %@", nearbyAirport.geocode); 
NSLog(@"airportToFind %@", airportToFind.geocode); 

//Try and match geocodes. If they are the same then airport is valid 
if ([[airportToFind geocode] isEqualToString:[nearbyAirport geocode]]) 
{ 
return YES; 
} 

2010-10-29 15:10:59.808 Name[10658:207] nearbyAirport 6296598 
2010-10-29 15:11:00.235 Name[10658:207] airportToFind 6296598 
+2

Avez-vous vérifié les espaces de fuite? Dans le NSLog, mettez des caractères après le% @. – Anna

Répondre

1

Je ne sais pas pourquoi cela ne fonctionnerait pas. Puisqu'ils sont des nombres, peut-être essayer et convertir la chaîne en nombres entiers et comparer ces deux?

if ([[airportToFind geocode] intValue] == [[nearbyAirport geocode] intValue]) { 
    return YES; 
    NSLog(@"Success!"); 
} 
2

Ajouter des guillemets autour des chaînes elles-mêmes pour assurer qu'il n'y a pas d'espaces . Je ne sais rien sur les géocodes, sont-ils toujours un numéro? Pourriez-vous les convertir en NSNumber et faire un nombre entier comparer?

+0

+ Ajouter des citations autour des cordes dans NSLog est une excellente tactique de débogage à retenir –

2

Quel est le type de [airportToFind geocode]?

Implémente-t-elle isEqualToString:?

+0

Great catch ... est-ce vraiment un NSString. –

Questions connexes