麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

IOS之網(wǎng)絡(luò)數(shù)據(jù)下載和JSON解析

2019-11-14 19:19:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

IOS之網(wǎng)絡(luò)數(shù)據(jù)下載和JSON解析

簡(jiǎn)介

  在本文中筆者將要給大家介紹IOS中如何利用URLConnection從網(wǎng)絡(luò)上下載數(shù)據(jù),如何解析下載下來(lái)的JSON數(shù)據(jù)格式,以及如何顯示數(shù)據(jù)和圖片的一部下載顯示

  涉及到的知識(shí)點(diǎn):

  1.URLConnection異步下載和封裝

  2.JSON格式和JSON格式解析

  3.數(shù)據(jù)顯示和使用SDWebImage異步顯示圖片

 

內(nèi)容

1.網(wǎng)絡(luò)下載基礎(chǔ)知識(shí)介紹

  什么是網(wǎng)絡(luò)應(yīng)用?

    需要連接網(wǎng)絡(luò)的應(yīng)用,例如:微信,QQ,足記等;

    而計(jì)算機(jī),相機(jī),日歷等不需要連接網(wǎng)絡(luò)的稱為本地應(yīng)用。

  網(wǎng)絡(luò)應(yīng)用的程序結(jié)構(gòu)

    需要有客戶端和服務(wù)端

      服務(wù)端是為客戶端服務(wù)的,服務(wù)的內(nèi)容諸如向客戶端提供資源,保存客戶端數(shù)據(jù)。

      客戶端(Client)或稱為用戶端,是指與服務(wù)器相對(duì)應(yīng),為客戶提供本地服務(wù)的程序

  常用的網(wǎng)絡(luò)接口形式

    IOS網(wǎng)絡(luò)應(yīng)用常見的數(shù)據(jù)接口一半都是HTTP形式的URL地址;

    其他的網(wǎng)絡(luò)數(shù)據(jù)接口 :http,ftp,https

  常見的數(shù)據(jù)格式

    IOS開發(fā)中常見的數(shù)據(jù)格式有兩種, 一種是JSON格式, 另外種是xml格式, 相對(duì)來(lái)說(shuō), JSON格式使用的比較多占了75%,XML占了20%,其余的占5%

  界面開發(fā)的一般流程 

    IOS中開發(fā)一個(gè)界面, 需要界面效果圖, 界面素材資源, 和網(wǎng)絡(luò)接口

    開發(fā)的流程一般如下所示

    ***1, 下載數(shù)據(jù)

    ***2, 解析JSON或XML數(shù)據(jù), 創(chuàng)建數(shù)據(jù)模型model

    ***3, 使用控件顯示數(shù)據(jù), 必要的時(shí)候定制視圖, 例如定制cell

2.URLConnection使用

  NSString 同步下載

 NSString *urlString = @"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id=";    NSLog(@"%@",urlString);//    下載數(shù)據(jù)//    通過(guò)地址生成NSURL對(duì)象    NSError *error = nil;    NSURL *url = [NSURL URLWithString:urlString];    NSString *content = [[NSString alloc]initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];    if (error == nil) {        NSLog(@"content = %@",content);    }    else{        NSLog(@"下載失敗");    }    //    項(xiàng)目中怎么使用//    1.同步形式下載,initWithContentsOfURL下載完了之后才會(huì)返回造成界面假死,不能使用//    2.使用異步下載(NSURLConnection 異步下載)

   NSURLConnection同步下載

 NSString *urlString = @"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id=";    //    發(fā)送同步URL請(qǐng)求//    NSURLRequest URL請(qǐng)求    NSURL *url = [NSURL URLWithString:urlString];    NSURLRequest *request = [NSURLRequest requestWithURL:url];    NSError *error = nil;    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];    if (error == nil) {        NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];        NSLog(@"str = %@",str);    }    else{        NSLog(@"下載失敗");    }

 

   NSURLConnection異步下載

-(void)testtestNSURLConnectionAsyncDownloadData{    NSString *urlString = @"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id=";    //    初始化    _data = [[NSMutableData alloc]init];//    發(fā)起一個(gè)異步的URL連接請(qǐng)求//    異步: 執(zhí)行了方法之后開始下載,立即返回,下載過(guò)程在后臺(tái)(多線程)執(zhí)行    _connection = [[NSURLConnection alloc]initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] delegate:self startImmediately:YES];    NSLog(@"initWithRequest執(zhí)行完成");    }//代理方法:接收到服務(wù)器的響應(yīng)執(zhí)行-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{    NSLog(@"接收到服務(wù)器的響應(yīng)");}//代理方法:接收到數(shù)據(jù)的時(shí)候執(zhí)行//注意:但數(shù)據(jù)比較大的時(shí)候可能多次執(zhí)行-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{    [_data appendData:data];}//代理方法:數(shù)據(jù)下載完成了-(void)connectionDidFinishLoading:(NSURLConnection *)connection{    NSString *str= [[NSString alloc]initWithData:_data encoding:NSUTF8StringEncoding];    NSLog(@"str = %@",str);    //    最簡(jiǎn)單的現(xiàn)實(shí)名字//    解析JSON//    作用:JSON數(shù)據(jù)轉(zhuǎn)化為NSDictionary或NSArray    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:_data options:NSJSONReadingMutableContainers error:nil];    NSArray *appList = dic[@"applications"];    for (NSDictionary *appDic in appList) {        NSLog(@"name = %@",appDic[@"name"]);    }}//代理方法:數(shù)據(jù)下載失敗-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{    NSLog(@"error = %@",error);}

 

3.JSON格式說(shuō)明和格式化工具

{  "list" : [    {      "IsXuanZuo" : 0,      "Name" : "汪峰2014“峰暴來(lái)臨”超級(jí)巡回演唱會(huì) 重慶站",      "PRiceStr" : "180,280,380,480,680,980,1280",      "ProjectID" : 66611,      "ShowTime" : "2014.11.01",      "SiteStatus" : 8,      "Summary" : "【先付預(yù)告】2014年5月12日12:08開啟先付!",      "VenId" : 258,      "VenName" : "重慶奧體中心",      "cityname" : "重慶市",      "priceName" : "180-1280元"    },    {      "IsXuanZuo" : 0,      "Name" : "莫文蔚20周年巡回演唱會(huì) 鄭州站",      "PriceStr" : "480,680,880,1280,1680,2014",      "ProjectID" : 66313,      "ShowTime" : "2014.07.26",      "SiteStatus" : 8,      "Summary" : "【客戶端專享】480元少量稀缺票客戶端獨(dú)家售賣!",      "VenId" : 942,      "VenName" : "鄭州國(guó)際會(huì)展中心",      "cityname" : "鄭州市",      "priceName" : "480-2014元"    },    {      "IsXuanZuo" : 0,      "Name" : "王力宏2014MUSIC-MANII“火力全開”世界巡回演唱會(huì)—北京站",      "PriceStr" : "280,380,480,580,880,1280,1680",      "ProjectID" : 66052,      "ShowTime" : "2014.06.14",      "SiteStatus" : 8,      "Summary" : "坦克上臺(tái)火力十足,打造音樂戰(zhàn)役!全新演繹經(jīng)典作品,體驗(yàn)超凡音樂魅力!",      "VenId" : 392,      "VenName" : "國(guó)家體育場(chǎng)",      "cityname" : "北京市",      "priceName" : "280-1680元"    }  ]}

      []    表示數(shù)組,對(duì)應(yīng)NSArray

      ,     表示并列的數(shù)據(jù)

      {}    表示字典,對(duì)應(yīng)NSDictionary

      :     表示鍵值對(duì)

      "xxx"  表示字符串,對(duì)應(yīng)NSString

      20    對(duì)應(yīng)NSNumber

    JSON格式格式化工具

        Jason

        Json Editor

        在線: http://www.kjson.com/

4.一個(gè)完整頁(yè)面的實(shí)現(xiàn)(包含model的創(chuàng)建,SDWebImage的使用)

效果圖:

 

我的代碼:下載

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品久久久久久模特 | 色污视频| 欧美成人一区免费视频 | 国产毛片视频 | av免费av| 黄色小视频在线免费看 | 久久精品欧美视频 | 久久一级 | 玩偶姐姐 在线观看 | 草久网| 黄色一级片在线免费观看 | xxxxhd86日本护士hd | 美女很黄很黄免费的 | 全网免费毛片 | 色域tv| 欧美视频不卡 | arabxxxxvideos| 国产午夜精品一区二区三区四区 | 亚洲男人的天堂在线视频 | 色妞欧美| 精品国产91久久久久久久妲己 | 成人毛片视频免费看 | 国产91亚洲精品一区二区三区 | 偿还电影免费看 | 56av国产精品久久久久久久 | 热re91久久精品国产99热 | 成人一级黄色大片 | 久草在线视频新 | 毛片免费视频观看 | 羞羞的视频免费观看 | 国产三级精品最新在线 | 久久成人综合视频 | 男女无遮挡羞羞视频 | av成人免费观看 | 黄污免费网站 | av日韩一区二区三区 | 午夜小网站 | 国产自在线 | 国产精品久久久久久久四虎电影 | 亚州精品天堂中文字幕 | 高清做爰免费无遮网站挡 |