移动开发过程中,很多时候,我们的数据来自网络别人提供的数据接口,所以我们做app的时候,需要用别人提供的接口把数据解析下载到本地,然后建立数据模型,再把数据显示到UI 界面上,网络上一搬提供两种数据的接口
Json 数据,xml 数据.
1.Json 下载并解析
//.m 文件中定义两个对象
@interface ViewController ()<NSURLConnectionDataDelegate>
{
NSURLConnection *_urlConnection; //用于下载的对象
NSMutableData *_downloadData; //存储下载的数据
}
//然后需要在viewDIdLoad 方法中去初始化两个对象:
- (void)viewDidLoad
{
NSString *urlString=@"http://192.168.88.8/sns/my/user_list.php?page=1d&number=20";
//创建并初始化_urlConnection 对象
//参数说明:
//参数1.initWithRequest:网络请求url
// 参数2. delegate 网络请求成功后处理事件,需要遵守 NSURLConnectionDataDelegate协议,
//参数3.startImmediately 是否立即下载,一般都是YES
_urlConnection=[[NSURLConnection alloc]initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] delegate:self startImmediately:YES];
//创建_downloadData 并初始化对象
_downloadData=[[NSMutableData alloc]init];
}
//遵守NSURLConnectionDataDelegate协议的方法
//当接收到服务器响应时执行
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"开始下载数据");
}
//作用当接收到数据时执行,下载数据较多的时候执行,需要将每次下载的数据合并到一起
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
//每次下载到数据都添加到数据中
NSLog(@"下载数据中");
[_downloadData appendData:data];
}
//下载完成
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
//数据下载完成后,解析下载完成的数据
//Serialization 把json格式的数据,解析为oc 的数据类型
//Json 格式的最上层是什么数据类型,就定义什么数据类型去接收数据
NSDictionary *dict= [NSJSONSerialization JSONObjectWithData:_downloadData options: NSJSONReadingMutableContainers error:nil ];
//打印验证数据是否解析成功
NSLog(@"dict=%@",dict);
//接着建立数据模型存储数据
………
}
Json 数据,xml 数据.
1.Json 下载并解析
//.m 文件中定义两个对象
@interface ViewController ()<NSURLConnectionDataDelegate>
{
NSURLConnection *_urlConnection; //用于下载的对象
NSMutableData *_downloadData; //存储下载的数据
}
//然后需要在viewDIdLoad 方法中去初始化两个对象:
- (void)viewDidLoad
{
NSString *urlString=@"http://192.168.88.8/sns/my/user_list.php?page=1d&number=20";
//创建并初始化_urlConnection 对象
//参数说明:
//参数1.initWithRequest:网络请求url
// 参数2. delegate 网络请求成功后处理事件,需要遵守 NSURLConnectionDataDelegate协议,
//参数3.startImmediately 是否立即下载,一般都是YES
_urlConnection=[[NSURLConnection alloc]initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] delegate:self startImmediately:YES];
//创建_downloadData 并初始化对象
_downloadData=[[NSMutableData alloc]init];
}
//遵守NSURLConnectionDataDelegate协议的方法
//当接收到服务器响应时执行
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"开始下载数据");
}
//作用当接收到数据时执行,下载数据较多的时候执行,需要将每次下载的数据合并到一起
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
//每次下载到数据都添加到数据中
NSLog(@"下载数据中");
[_downloadData appendData:data];
}
//下载完成
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
//数据下载完成后,解析下载完成的数据
//Serialization 把json格式的数据,解析为oc 的数据类型
//Json 格式的最上层是什么数据类型,就定义什么数据类型去接收数据
NSDictionary *dict= [NSJSONSerialization JSONObjectWithData:_downloadData options: NSJSONReadingMutableContainers error:nil ];
//打印验证数据是否解析成功
NSLog(@"dict=%@",dict);
//接着建立数据模型存储数据
………
}