你的位置:首页 > 操作系统

[操作系统]iOS网络数据下载和JSON解析


iOS网络数据下载和JSON解析

简介

  在本文中笔者将要给大家介绍iOS中如何利用NSURLConnection如何从网络中下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示。

  涉及到的知识点:

  1.NSURLConnection异步下载和封装

#import "ZJHttpRequest.h"//消除performSelector的警告#pragma clang diagnostic ignored "-Warc-performSelector-leaks"//类扩展//项目实践:// 有些实例变量内部使用, 不想放在头文件中, 放在这儿@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];  }  }@end

  2.JSON格式和JSON格式解析

    JSON格式:

{    //{}字典 ,[]数组 "list" : [  {   "IsXuanZuo" : 0,   "Name" : "“梁静茹·你的名字是爱情”2015世界巡回演唱会天津站",   "PriceStr" : "299,399,599,799,999",   "ProjectID" : 78647,   "ShowTime" : "2015.07.25",   "SiteStatus" : 8,   "Summary" : "4月7日13:00大麦APP抢先开启先付预售!",   "VenId" : 1403,   "VenName" : "天津体育中心(大馆)",   "cityname" : "天津市",   "openSum" : 5836,   "priceName" : "299-999元"  },  ...}

    JSON最简便的解析方法:

  NSJSONSerialization
   NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:request.data options:NSJSONReadingMutableContainers error:nil];

 

  3.数据显示和使用SDWebImage异步显示图片

    SDWebImage  -- UIImageView+WebCache.h  

    需设置内存管理  --> Project --->Build Phases  -->将所有SD文件设置Compiler Flags

    

内容

1.网络下载基础知识介绍

  什么是网络应用?

  网络应用的程序结构

   C/S结构:Cilent客户端

        Server 服务端 

  常见的数据格式

    JSON/

  界面开发的一般流程

    界面模板--> 数据资源--> 下载数据,解析-->设计界面,刷新

2.NSURLConnection使用

  NSString同步,NSURLConnection同步  --> 同步下载界面会卡(一般不用)

  NSURLConnection异步

3.JSON格式说明和格式化工具

 

4.一个完整页面的实现(包含model的创建,SDWebImage的使用)

   MVC模式 -->M:model  , V:view  , C:controller    

  数据下载--> 解析 --> 提取数据于model中 --> 建立cell 设置数据