一:JSONO转字典,不能传入空的数据。否则发生crash。
+ (nullable id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;
1. @try {
NSDictionary * requestDic = [NSJSONSerialization JSONObjectWithData:NULL options:NSJSONReadingMutableContainers error:nil];
NSLog(@"dic->%@",requestDic);
} @catch (NSException *exception) {
NSLog(@"exception->%@",exception);
} @finally {
}
----》crash日志:
【2016-10-19 19:23:20.237 TestB[7150:347010] exception->data parameter is nil
2016-10-19 19:23:20.237 TestB[7150:347010] -[__NSCFConstantString bytes]: unrecognized selector sent to instance 0x104c8c180】
2.
@try {
NSDictionary * requestDic1 = [NSJSONSerialization JSONObjectWithData:@"" options:NSJSONReadingMutableContainers error:nil];
NSLog(@"dic1->%@",requestDic1);
} @catch (NSException *exception) {
NSLog(@"exception1->%@",exception);
} @finally {
}
---》crash日志:
2016-10-19 19:25:05.624 TestB[7150:347010] exception1->-[__NSCFConstantString bytes]: unrecognized selector sent to instance 0x104c8c180
二: 将char转成字符串 stringWithUTF8String,如果传入空,则会crash
char * Order = (char*)sqlite3_column_text(statement, 0);
NSMutableDictionary * dic = [NSMutableDictionary dictionaryWithCapacity:4];
DICT_SET_STRING([NSString stringWithUTF8String:Order], TAG_CMGEORDER, dic);
方法
+ (nullable instancetype)stringWithUTF8String:(const char *)nullTerminatedCString;