在本文中筆者將要給大家介紹IOS中如何利用NSURLconnection從網絡上下載數據以及如何解析下載下來的JSON數據格式,以及如何顯示數據和托圖片的異步下載顯示。
涉及到的知識點;
1. NSURLconnection異步下載和封裝
2.JSON格式和JSON格式解析
3. 數據顯示和使用SDWebImage異步顯示圖片
1.網絡下載基礎知識介紹
什么是網絡應用?
網絡應用就是在有網絡的環境下才能正常使用的一些應用程序。
網絡應用的程序結構
C/S結構
Client客戶端: 展示數據, 與用戶進行交流。
Server服務端: 為客戶端提供數據, 提供服務。
界面開發的一般流程
1.你先需要知道自己做的界面是怎樣的一個效果,然后你再看需要什么素材和網絡接口。
2.利用NSURLConnection異步下載數據。
3.通過解析數據,建立數據模型model。
4.自行定義一個UITabBarViewCell來顯示界面。
2.NSURLconnection的使用
在這里我們是封裝了這個異步下載的方法
@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同步下載數據
我們把它寫在這個方法里面,數據的接口是愛限免的數據接口,同步下載我們是不能用的,因為如果你要下載的數據比較大的話就很容易陷進這個方法里面去出不來,我們的異步下載是在后臺運行下載的,但同步下載卻是下載完數據之后返回再跳出方法的。這是它們的不同點,也是同步下載的致命缺陷。
-(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的解析軟件就可以清楚的看到它里面嵌套的數據結構了,推薦給大家。
這是解析的方法:
NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:(NSData *)options:(NSJSONReadingOptions) error:(NSError *__autoreleasing *)
4.一個完整界面的實現(包含Model創建)
效果圖:
新聞熱點
疑難解答