iOS-URL参数格式化

2019-06-12  本文已影响0人  和谐共处
//url参数转为NSDictionary
- (NSDictionary *)queryParamsFormat:(NSString *)urlStr{
    NSRange questionRange = [urlStr rangeOfString:@"?"];
    if (questionRange.length == 0) {
        return nil;
    }

    NSString *query = [urlStr substringFromIndex:questionRange.location+1];
    if (query.length>0) {
        query = [query stringByAppendingString:@"&end=placeholder"];
        NSArray *kvItems = [query componentsSeparatedByString:@"&"];
        NSMutableDictionary *params = [[NSMutableDictionary alloc] initWithCapacity:0];
        for (NSString *kvItem in kvItems) {
            NSArray *kvs = [kvItem componentsSeparatedByString:@"="];
            [params setValue:kvs.lastObject forKey:kvs.firstObject];
        }
        if (params.allKeys.count>0) {
            return params;
        }
    }
    return nil;
}
//NSDictionary转为url参数
- (NSString *)queryParamsFromDic:(NSDictionary *)dic{
    
    NSMutableArray *params = [NSMutableArray arrayWithCapacity:0];
    [dic enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
        NSString *kvpair = [NSString stringWithFormat:@"%@=%@",key,obj];
        [params addObject:kvpair];
    }];
    if (params.count>0) {
        NSString *queryParams = [params componentsJoinedByString:@"&"];
        if (params.count==1) {
            queryParams = params.firstObject;
        }
        return [@"?" stringByAppendingString:queryParams];
    }
    
    return nil;
}
上一篇 下一篇

猜你喜欢

热点阅读