为什么 NSData 转换为 NSString 在 ios10 上崩溃
Why NSData convert to NSString crashed on ios10
最近我的应用在 ios10 上将 NSData 转换为 NSString 时收到了一些崩溃报告,附件图像是崩溃 stack.The 崩溃是由 fabric 收集的,我无法重现它。
有没有其他人遇到同样的问题,请告诉我如何避免这个问题?
我已经检查了 nsdata 并确保它不是 nil。
[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]
#0. Crashed: com.apple.main-thread
0 libsystem_kernel.dylib 0x18b7f3014 __pthread_kill + 8
1 libsystem_pthread.dylib 0x18b8bb450 pthread_kill + 112
2 libsystem_c.dylib 0x18b767400 abort + 140
3 libsystem_malloc.dylib 0x18b837a5c _nano_vet_and_size_of_live + 330
4 libsystem_malloc.dylib 0x18b839028 nano_realloc + 648
5 libsystem_malloc.dylib 0x18b82b240 malloc_zone_realloc + 180
6 CoreFoundation 0x18c7e3958 __CFStringCreateImmutableFunnel3 + 692
7 CoreFoundation 0x18c76d81c CFStringCreateFromExternalRepresentation + 104
8 Foundation 0x18d253f64 -[NSPlaceholderString initWithData:encoding:] + 148
here is the crash detail screenshot
检查条件 NSData
不为零,data.length > 0
表示它包含一些值。
if(data.length > 0){
NSString *tempString =[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//Do your tasks here
}
检查你的数据是否不为nil且不为Null
if (data && ![data isKindOfClass:[NSNull class]]) {
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]
}
最近我的应用在 ios10 上将 NSData 转换为 NSString 时收到了一些崩溃报告,附件图像是崩溃 stack.The 崩溃是由 fabric 收集的,我无法重现它。
有没有其他人遇到同样的问题,请告诉我如何避免这个问题?
我已经检查了 nsdata 并确保它不是 nil。
[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]
#0. Crashed: com.apple.main-thread
0 libsystem_kernel.dylib 0x18b7f3014 __pthread_kill + 8
1 libsystem_pthread.dylib 0x18b8bb450 pthread_kill + 112
2 libsystem_c.dylib 0x18b767400 abort + 140
3 libsystem_malloc.dylib 0x18b837a5c _nano_vet_and_size_of_live + 330
4 libsystem_malloc.dylib 0x18b839028 nano_realloc + 648
5 libsystem_malloc.dylib 0x18b82b240 malloc_zone_realloc + 180
6 CoreFoundation 0x18c7e3958 __CFStringCreateImmutableFunnel3 + 692
7 CoreFoundation 0x18c76d81c CFStringCreateFromExternalRepresentation + 104
8 Foundation 0x18d253f64 -[NSPlaceholderString initWithData:encoding:] + 148
here is the crash detail screenshot
检查条件 NSData
不为零,data.length > 0
表示它包含一些值。
if(data.length > 0){
NSString *tempString =[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//Do your tasks here
}
检查你的数据是否不为nil且不为Null
if (data && ![data isKindOfClass:[NSNull class]]) {
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]
}