J'ai un test isEqualToString simple dans mon application, et pour une raison quelconque, il prend toujours le faux chemin de l'instruction if, même si la console montre qu'elle devrait prendre le vrai chemin .iPhone/iOS isEqualToString retourne toujours false
Voici le code qui est en question:
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
NSLog(@"Program requestFailed with error '%@' and reason '%@'", [error localizedDescription], [error localizedFailureReason]);
NSString *errorMessage = [NSString stringWithFormat:@"%@",[error localizedDescription]];
if ([[error localizedFailureReason] isEqualToString:@"(null)"])
{
}
else
{
errorMessage = [errorMessage stringByAppendingFormat:@"\nReason: %@", [error localizedFailureReason]];
}
[Utils msgBox:@"Error with Data Download" message:errorMessage];
}
Et dans la console:
2011-04-15 14:27:07.341 Program[79087:207] Program requestFailed with error 'The request timed out' and reason '(null)'
2011-04-15 14:27:07.341 Program[79087:207] Displaying a message box with title 'Error with Data Download' and message 'The request timed out
Reason: (null)'
La méthode MsgBox dans ma classe Utils délivre le titre et le message à la console, qui est d'où vient la deuxième ligne.
Je regarde cela depuis un moment, et la réponse doit être si facile qu'elle échappe à l'attention. Aucune suggestion? (J'ai essayé de couper les espaces blancs au large [erreur localiséeDescription], en vain.) Je suis sur le dernier 4.3 iOS SDK.