Je me sers stringWithUTF8String pour convertir mon NSData à NSString comme suit:stringWithUTF8String retour nul depuis iOS 8.2 mise à jour
if ([[NSString stringWithUTF8String:[responsedata bytes]] isEqualToString:@"SUCCESS"]){
dostuff...
}
Il a été fonctionne très bien; Cependant, depuis la mise à jour iOS 8.2, [[NSString stringWithUTF8String:[responsedata bytes]]
a renvoyé zéro.
je résolu le problème en utilisant le code suivant:
NSString *responseDataString = [[NSString alloc] initWithData:responsedata encoding:NSUTF8StringEncoding];
if ([responseDataString isEqualToString:@"SUCCESS"]){
dostuff...
}
Dans les deux cas responsedata
« s Description imprimée était le même: <OS_dispatch_data: data[0x7aeb6500] = { leaf, size = 7, buf = 0x7c390360 }>
Ma question est: Pourquoi le premier zéro de retour d'option, et pourquoi soudainement après la mise à jour iOS 8.2? String_withF8String attend un tampon terminé par NUL, mais votre NSData n'est pas terminé par NUL.
Semble à moi comme un bug, je vous suggère de soumettre un rapport de bug avec Apple – rckoenes