//字典轉連接(參數)
- (NSString *)keyValueStringWithDict:(NSDictionary *)dict
{ if (dict == nil) { return nil; } NSMutableString *string = [NSMutableString stringWithString:@"?"]; [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { [string appendFormat:@"%@=%@&",key,obj]; }]; if ([string rangeOfString:@"&"].length) { [string deleteCharactersInRange:NSMakeRange(string.length - 1, 1)]; } return string; } //連接轉字典 (參數) -(NSDictionary *)dictionaryWithUrlString:(NSString *)urlStr { if (urlStr && urlStr.length && [urlStr rangeOfString:@"?"].length == 1) { NSArray *array = [urlStr componentsSeparatedByString:@"?"]; if (array && array.count == 2) { NSString *paramsStr = array[1]; if (paramsStr.length) { NSMutableDictionary *paramsDict = [NSMutableDictionary dictionary]; NSArray *paramArray = [paramsStr componentsSeparatedByString:@"&"]; for (NSString *param in paramArray) { if (param && param.length) { NSArray *parArr = [param componentsSeparatedByString:@"="]; if (parArr.count == 2) { [paramsDict setObject:parArr[1] forKey:parArr[0]]; } } } return paramsDict; }else{ return nil; } }else{ return nil; } }else{ return nil; } }
//特殊連接解析不了 。 'https://wwww.baidu.com/#/sdffff?name=sdfff&pass=dddff'
/** 獲取url的全部參數 @param url 須要提取參數的url @return NSDictionary */ -(NSDictionary *) parameterWithURL:(NSURL *) url { NSMutableDictionary *parm = [[NSMutableDictionary alloc]init]; //傳入url建立url組件類 NSURLComponents *urlComponents = [[NSURLComponents alloc] initWithString:url.absoluteString]; //回調遍歷全部參數,添加入字典 [urlComponents.queryItems enumerateObjectsUsingBlock:^(NSURLQueryItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { [parm setObject:obj.value forKey:obj.name]; }]; return parm; }