OC中如何把字典中的數(shù)據(jù)拼接成url字符串

在使用[objective-c語(yǔ)言]開發(fā)iOS應(yīng)用中,會(huì)向服務(wù)器通過(guò)URL請(qǐng)求一些數(shù)據(jù),因此對(duì)URL的拼接肯定少不了。而在iOS中,我們一般是通過(guò)將字典中的數(shù)據(jù)拼接成我們要請(qǐng)求的URL字符串,那這個(gè)是怎么實(shí)現(xiàn)的呢?今天小編就將為大家分享一篇在網(wǎng)上看到的一位大神對(duì)Objective-C中把數(shù)組字典的數(shù)據(jù)轉(zhuǎn)換成URL的剖析,一起來(lái)看看吧。

1.****生成測(cè)試數(shù)據(jù)

字典中的鍵,我們一般是通過(guò)宏定義來(lái)初始化的,目的是便于維護(hù),提高代碼編寫效率,下面是對(duì)key的宏定義:

//定義字典鍵

define A @"a"

define B @"b"

define C @"c"

define D @"d"

添加測(cè)試數(shù)據(jù)

//容納字符串拼接后的字符串

NSMutableArray *arrayURL = [NSMutableArray new];

//存放可變字典的數(shù)組

NSMutableArray *arrayDic = [NSMutableArray new];

//生成測(cè)試數(shù)據(jù)

NSDictionary *dic1 = @{A : @10,

                   B : [](http://www.tianya.cn/name/20)[@20](http://www.tianya.cn/name/20)};

NSDictionary *dic2 = @{A : @10,

                   B : @20,

                   C : @30};

NSDictionary *dic3 = @{A : @10,

                   C : @30};

//把數(shù)組加入字典

[arrayDic addObject:dic1];

[arrayDic addObject:dic2];

[arrayDic addObject:dic3];

//容納字符串拼接后的字符串

NSMutableArray *arrayURL = [NSMutableArray new];

//存放可變字典的數(shù)組

NSMutableArray *arrayDic = [NSMutableArray new];

//生成測(cè)試數(shù)據(jù)

NSDictionary *dic1 = @{A: @10,

                   B: @20};

NSDictionary *dic2 = @{A: @10,

                   B: @20,

                   C: @30};

NSDictionary *dic3 = @{A: @10,

                   C: @30};

//把數(shù)組加入字典

[arrayDicaddObject:dic1];

[arrayDicaddObject:dic2];

[arrayDicaddObject:dic3];

2****、數(shù)據(jù)轉(zhuǎn)換成URL

接下來(lái)我們要做的就是把上面可變數(shù)組中的字典的數(shù)據(jù)轉(zhuǎn)換為URL,轉(zhuǎn)換的具體過(guò)程如下:

//從數(shù)組中取出字典,把每個(gè)然后拼接成url

for (int i = 0; i < arrayDic.count; i ++)

{

NSLog(@"對(duì)數(shù)組中第%d個(gè)字典操作n:%@",i+1 ,arrayDic[i]);

//URL

NSMutableString *URL = [NSMutableString stringWithFormat:@"http://www.baidu.com"];

//獲取字典的所有keys

NSArray * keys = [arrayDic[i] allKeys];

//拼接字符串

for (int j = 0; j < keys.count; j ++)

{

    NSString *string;

    if (j == 0)

    {

        //拼接時(shí)加?

        string = [NSString stringWithFormat:@"?%@=%@", keys[j], arrayDic[i][keys[j]]];

    }

    else

    {

        //拼接時(shí)加&

        string = [NSString stringWithFormat:@"&%@=%@", keys[j], arrayDic[i][keys[j]]];

    }

    //拼接字符串

    [URL appendString:string];

}

NSLog(@"第%d個(gè)字典轉(zhuǎn)換的URL:%@",i+1, URL);

//加入數(shù)組

[arrayURL addObject:URL];

}

//從數(shù)組中取出字典,把每個(gè)然后拼接成url

for (int i = 0; i < arrayDic.count; i ++)

{

NSLog(@"對(duì)數(shù)組中第%d個(gè)字典操作n:%@",i+1 ,arrayDic[i]);

//URL

NSMutableString *URL = [NSMutableStringstringWithFormat:@"http://www.baidu.com"];

//獲取字典的所有keys

NSArray * keys = [arrayDic[i]allKeys];

//拼接字符串

for (int j = 0; j < keys.count; j ++)

{

    NSString *string;

    if (j == 0)

    {

        //拼接時(shí)加?

        string = [NSStringstringWithFormat:@"?%@=%@", keys[j], arrayDic[i][keys[j]]];

    }

    else

    {

        //拼接時(shí)加&

        string = [NSStringstringWithFormat:@"&%@=%@", keys[j], arrayDic[i][keys[j]]];

    }

    //拼接字符串

    [URLappendString:string];

}

NSLog(@"第%d個(gè)字典轉(zhuǎn)換的URL:%@",i+1, URL);

//加入數(shù)組

[arrayURLaddObject:URL];

}

代碼說(shuō)明:

1.對(duì)數(shù)組中的每個(gè)字典遍歷

2.對(duì)每個(gè)字典中的鍵值對(duì)遍歷

3.url中如果是第一個(gè)參數(shù)拼接時(shí)加上?

4.如果不是第一個(gè)參數(shù)拼接時(shí)加上&

5.把拼接好的字符串URL加入到可變數(shù)組中然后返回存有URL的數(shù)組

最終轉(zhuǎn)換結(jié)果為:

2014-08-12 11:41:18.927 HelloOC[997:303] 轉(zhuǎn)換完成:

(

"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"

)

2014-08-12 11:41:18.927 HelloOC[997:303] 轉(zhuǎn)換完成:

(

"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"

)

以上就是objective-c中,數(shù)組中字典的數(shù)據(jù)轉(zhuǎn)換成URL 的實(shí)現(xiàn)方法,如果大家看后趕腳還比較虛的話,建議根據(jù)上面的介紹,自己動(dòng)手實(shí)現(xiàn)下。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容