ios 7.x 出现了一个闪退,调试代码发现stringByRemovingPercentEncoding 对空字符对象的转化在ios8以下为nil,ios8以上为@“”。value 为nil导致闪退。
代码如下。
- (NSDictionary *)getParams:(NSString *)query {
NSMutableDictionary *queryStringDictionary =@{}.mutableCopy;
NSArray *urlComponents = [querycomponentsSeparatedByString:@"&"];
for (NSString *keyValuePairin urlComponents)
{
NSArray *pairComponents = [keyValuePaircomponentsSeparatedByString:@"="];
NSString *key = [[pairComponentsfirstObject] stringByRemovingPercentEncoding];
NSString *value = [[pairComponentslastObject] stringByRemovingPercentEncoding];
if(value !=nil && key != nil)//防止ios 7.x闪退 linqx 2016 11 01
{
[queryStringDictionary setObject:valueforKey:key];
}
}
return queryStringDictionary.copy;
}
本文介绍了一种在iOS7.x上出现的闪退问题及其解决方案。问题源于stringByRemovingPercentEncoding方法对空字符的不同处理方式。文中提供了一段代码示例来说明如何通过检查nil值来避免该问题。
4725

被折叠的 条评论
为什么被折叠?



