字典取值为空崩溃问题

今天后台报错

1
2
[_NSPlaceholderData initWithBase64Encoding:]: nil string argument
Foundation -[NSData(NSData) base64Encoding]

经过检查问题发生在字典取出值没有判空就传递给方法使用,细节也要注意,养成良好的编码习惯

1
2
NSString *urlstr = dic[@"imgBase64"];
NSData *data = [[NSData alloc] initWithBase64Encoding:urlstr];

正确的代码

1
2
3
4
5
id obj = dic[@"imgBase64"];
if (obj && [obj isKindOfClass:[NSString class]]) {
NSString *urlstr = (NSString *)obj;
NSData *data = [[NSData alloc] initWithBase64Encoding:urlstr];
}