前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS之网络数据下载和JSON解析

iOS之网络数据下载和JSON解析

作者头像
Mr.RisingSun
发布2018-01-09 16:54:08
1.3K0
发布2018-01-09 16:54:08
举报
文章被收录于专栏:移动端开发移动端开发

 iOS之网络数据下载和JSON解析

简介

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

  涉及到的知识点;

  1. NSURLconnection异步下载和封装

  2.JSON格式和JSON格式解析

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

内容

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

            什么是网络应用?

                          网络应用就是在有网络的环境下才能正常使用的一些应用程序。

              网络应用的程序结构

C/S结构

Client客户端: 展示数据, 与用户进行交流。

Server服务端: 为客户端提供数据, 提供服务。

     界面开发的一般流程

               1.你先需要知道自己做的界面是怎样的一个效果,然后你再看需要什么素材和网络接口。

               2.利用NSURLConnection异步下载数据。

               3.通过解析数据,建立数据模型model。

               4.自行定义一个UITabBarViewCell来显示界面。

2.NSURLconnection的使用

                    在这里我们是封装了这个异步下载的方法

代码语言:javascript
复制
@interface ZXHttpRequest()<NSURLConnectionDataDelegate>
{
    NSString *_url;
    SEL _action;
    NSURLConnection *_connection;
    id _target;


}

@implementation ZXHttpRequest

-(void)requestWithUrl:(NSString *)url
               target:(id)target
               action:(SEL)action;
{
    
    _url=url;
    _action=action;
    _target=target;
    _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
{

    [_target performSelector:_action withObject:self];
}

         NSString同步下载数据

      我们把它写在这个方法里面,数据的接口是爱限免的数据接口,同步下载我们是不能用的,因为如果你要下载的数据比较大的话就很容易陷进这个方法里面去出不来,我们的异步下载是在后台运行下载的,但同步下载却是下载完数据之后返回再跳出方法的。这是它们的不同点,也是同步下载的致命缺陷。

代码语言:javascript
复制
-(void)testNSStringDownloadData
{
    NSString *urlString = @"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id=";
    
    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(@"下载失败");
    }
  
}

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

        JSON格式最重要的就是要搞清楚它数据里面的嵌套关系,它解析的方法其实很简单,重点不在方法,就在嵌套关系,我们通过一个JASON的解析软件就可以清楚的看到它里面嵌套的数据结构了,推荐给大家。

这是解析的方法:

代码语言:javascript
复制
    NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:(NSData *)options:(NSJSONReadingOptions) error:(NSError *__autoreleasing *)                     

  4.一个完整界面的实现(包含Model创建)

         效果图 :

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-04-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  iOS之网络数据下载和JSON解析
  • 简介
    • 内容
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档