我一直在使用stringWithUTF8String将NSData转换为NSString,操作如下:
在两种情况下,
if ([[NSString stringWithUTF8String:[responsedata bytes]] isEqualToString:@"SUCCESS"]){
dostuff...
}
一直以来都运行得很好;然而,在8.2 iOS升级后,[[NSString stringWithUTF8String:[responsedata bytes]]
返回了nil。
我通过使用以下代码解决了这个问题:
NSString *responseDataString = [[NSString alloc] initWithData:responsedata encoding:NSUTF8StringEncoding];
if ([responseDataString isEqualToString:@"SUCCESS"]){
dostuff...
}
在两种情况下,
responsedata
的打印描述都是相同的:<OS_dispatch_data:data [0x7aeb6500] = {leaf,size = 7,buf = 0x7c390360}>
我的问题是:为什么第一种选项会返回 nil,而且为什么突然在 iOS 8.2 更新后出现?