国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ios之網絡數據下載和JSON解析

2019-11-14 19:19:16
字體:
來源:轉載
供稿:網友

ios之網絡數據下載和JSON解析

簡介

  在本文中筆者將要給大家介紹ios中如何利用NSURLConnection從網絡上下載數據以及如何解析下載下來的JSON的數據格式,以及如何顯示數據和圖片的異步下載顯示

  涉及到的知識應用:

  1.NSURLConnection異步下載和封裝

  2.JSON格式和JSON格式解析

  3.數據顯示和使用SDWebImage異步顯示圖片

內容

  1網絡下載基礎知識介紹

    什么是網絡應用?

      一般情況下,iphone上絕大多數的應用都需要網絡才能運行,就是網絡應用。

    網絡應用的程序結構

      在網絡上運行一個程序為應用提供數據, 或者提供服務, 那么這個網絡應用一般稱為客戶端, 而網絡上運行的服務稱為服務端。

    常見的網絡接口形式

                 iOS網絡應用常見的數據接口一般都是HTTP形式的URL地址。

    界面開發的一般流程

      下載數據  NSURLConnection+URL 

      解析數據  JSON/xml

      建立數據模型model

      創建視圖 使用視圖顯示

                 tableView +定制cell

                 圖片異步下載SDWeblmage

  2NSURLConnection的使用

    NSString同步下載數據

    

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(@"下載失敗");    }

  

    NSURLConnection 同步下載

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 異步下載

    

@PRoperty (copy,nonatomic) NSMutableData *data;//作用://  傳入網址, 下載完成執行后執行target對象中action方法-(void)requestWithUrl:(NSString *)url target:(id)target action:(SEL)action;@interface ZJHttpRequest ()<NSURLConnectionDataDelegate>{    NSURLConnection *_connection;    NSString *_url;    id _target;    SEL _action;}@end@implementation ZJHttpRequest//作用://  傳入網址, 下載完成執行后執行target對象中action方法-(void)requestWithUrl:(NSString *)url               target:(id)target               action:(SEL)action{    _url = url;    _target = target;    _action = action;        //發起URL請求    _data = [[NSMutableData alloc] init];    _connection = [[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]] delegate:self startImmediately:YES];}-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{    [_data appendData:data];}-(void)connectionDidFinishLoading:(NSURLConnection *)connection{    //下載完成了, 執行保存的方法    if(_target && [_target respondsToSelector:_action])    {        [_target performSelector:_action withObject:self];    }    }

  

  3JSON格式說明和格式化工具

 

    

JSON格式

    {

        "count":20,

        "data":[

            "zhangsan",

            "lisi",

            "wangwu"

        ]

    }

    []    表示數組,對應NSArray

    ,     表示并列的數據

    {}    表示字典,對應NSDictionary

    :     表示鍵值對

    "xxx"  表示字符串,對應NSString

    20    對應NSNumber

  4一個完成頁面的實現(包含model的創建,SDWebImage的使用)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍山县| 灵山县| 浮梁县| 平安县| 沈丘县| 绥滨县| 柯坪县| 博罗县| 新野县| 攀枝花市| 措美县| 崇明县| 青川县| 石渠县| 柳林县| 弥渡县| 芷江| 安塞县| 黑水县| 班戈县| 张家口市| 柏乡县| 桦川县| 威宁| 杭锦旗| 康保县| 亳州市| 萍乡市| 平度市| 阿拉善右旗| 长白| 神木县| 白银市| 临邑县| 施秉县| 游戏| 金湖县| 禹城市| 雷波县| 乐亭县| 囊谦县|