stringByRemovingPercentEncoding 对空字符对象的转化在ios8以下为nil,ios以上为@“”
2016-11-01 10:33
387 查看
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;
}
代码如下。
- (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;
}
相关文章推荐
- stringByAddingPercentEscapesUsingEncoding方法被替换 iOS9.0
- iOS - (nullable NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc 代替方法的使用
- iOS---stringByAddingPercentEscapesUsingEncoding:' is deprecated: first deprecated in iOS 9.0 - Use -stringByAddingPercentEncodingWithAllowedCharacters: instead,
- stringByAddingPercentEscapesUsingEncoding
- stringByAddingPercentEscapesUsingEncoding:《iOS9中禁用》
- stringByAddingPercentEscapesUsingEncoding
- IPHONE stringByAddingPercentEscapesUsingEncoding来编码 URL
- ios学习第二天(一)对象之字符串NSString和NSMutableString
- 用stringByAddingPercentEncodingWithAllowedCharacters取代CFURLCreateStringByAddingPercentEscapes
- stringByReplacingPercentEscapesUsingEncoding attributesOfItemAtPath
- stringByAddingPercentEscapesUsingEncoding: 和stringByReplacingPercentEscapesUsingEncoding:的不同
- [URLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; URL 请求前先加入这个
- stringByAddingPercentEncodingWithAllowedCharacters
- stringByAddingPercentEncodingWithAllowedCharacters
- stringByAddingPercentEncodingWithAllowedCharacters
- ios 字符串去除特殊字符stringByTrimmingCharactersInSet
- stringByAddingPercentEncodingWithAllowedCharacters和CFURLCreateStringByAddingPercentEscapes的使用
- IOS中字符串去除特殊字符StringByTrimmingCharatersInSet
- 用stringByAddingPercentEncodingWithAllowedCharacters取代CFURLCreateStringByAddingPercentEscapes
- JavaScript中json对象和string对象之间的转化