标签:key .com 如何 rate get plain 列表 table ble
上一篇博客中是把URL转换为字典,那么我们如何把URL请求中的参数封装成字典,然后再封装成数组呢?对OC中字符串操作熟练的小伙伴们应该觉得这是一个a+b的问题,没错把URL中的参数转换为字典主要是对字符串的截取,关键是怎么个截法,才能把字符串中的参数列表分别转换成键值对。下面是小菜自己的转换思路,如果有更好的结局方法还请批评指正,相互学习交流一下,转载请注明出处。
首先我们得会一个字符串拆分函数 componentsSeparatedByString:@"&",把字符串按照&进行拆分,然后返回字符串数组
? ?输入的数据的格式如下(装有url的字符串数组):
| 1 2 3 4 5 | (    "http://www.baidu.com?a=10&b=20",    "http://www.baidu.com?a=10&b=20&c=30",    "http://www.baidu.com?a=10&c=30") | 
? ?接下来就是要把每个url中的参数列表转换成字典,主要代码如下:
? ? ?代码说明:
? ? ? ?1.先把参数列表在url中的参数列表的起始位置获取到,通过方法rangeOfString方法获取
? ? ? ?2.位置获取到以后我们可以把参数列表从url字符串中提取出来,通过substringFromIndex来获取。
? ? ? ?3.通过componentsSeparatedByString把参数列表进行每项的拆分
? ? ? ?4.通过componentsSeparatedByString把每项进行键值对的拆分
? ? ? ?5.把键值对存入字典
? ? ? ?5.把字典存入数组
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | NSMutableArray * dataArray(){    //用来作为函数的返回值,数组里里面可以存放每个url转换的字典    NSMutableArray *arrayData = [NSMutableArray arrayWithCapacity:4];        //获取数组,数组里装得是url    NSMutableArray *arrayURL = appendURL();    NSLog(@"获取到得URL数组如下:\n%@", arrayURL);        //循环对数组中的每个url进行处理,把参数转换为字典    for(inti = 0; i < arrayURL.count; i ++)    {        NSLog(@"第%d个URL的处理过程:%@", i+1, arrayURL[i]);                //获取问号的位置,问号后是参数列表        NSRange range = [arrayURL[i] rangeOfString:@"?"];        NSLog(@"参数列表开始的位置:%d", (int)range.location);                //获取参数列表        NSString *propertys = [arrayURL[i] substringFromIndex:(int)(range.location+1)];        NSLog(@"截取的参数列表:%@", propertys);                //进行字符串的拆分,通过&来拆分,把每个参数分开        NSArray *subArray = [propertys componentsSeparatedByString:@"&"];        NSLog(@"把每个参数列表进行拆分,返回为数组:\n%@", subArray);                //把subArray转换为字典        //tempDic中存放一个URL中转换的键值对        NSMutableDictionary *tempDic = [NSMutableDictionary dictionaryWithCapacity:4];                for(intj = 0 ; j < subArray.count; j++)        {            //在通过=拆分键和值            NSArray *dicArray = [subArray[j] componentsSeparatedByString:@"="];            NSLog(@"再把每个参数通过=号进行拆分:\n%@", dicArray);            //给字典加入元素            [tempDic setObject:dicArray[1] forKey:dicArray[0]];        }        NSLog(@"打印参数列表生成的字典:\n%@", tempDic);        [arrayData addObject:tempDic];    }    NSLog(@"打印参数字典生成的数组:\n%@", arrayData);        returnarrayData;} | 
? ?上面代码具体的执行步骤:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 2014-08-12 13:46:14.126 HelloOC[1195:303] 第1个URL的处理过程:http://www.baidu.com?a=10&b=202014-08-12 13:46:14.126 HelloOC[1195:303] 参数列表开始的位置:202014-08-12 13:46:14.126 HelloOC[1195:303] 截取的参数列表:a=10&b=202014-08-12 13:46:14.127 HelloOC[1195:303] 把每个参数列表进行拆分,返回为数组:(    "a=10",    "b=20")2014-08-12 13:46:14.127 HelloOC[1195:303] 再把每个参数通过=号进行拆分:(    a,    10)2014-08-12 13:46:14.127 HelloOC[1195:303] 再把每个参数通过=号进行拆分:(    b,    20)2014-08-12 13:46:14.128 HelloOC[1195:303] 打印参数列表生成的字典:{    a = 10;    b = 20;} | 
标签:key .com 如何 rate get plain 列表 table ble
原文地址:http://www.cnblogs.com/zhangkeyu/p/6659447.html