iOS开发—解析天气预报
来源:互联网 发布:淘宝退款和退货区别 编辑:程序博客网 时间:2024/06/05 11:31
新建一个SingleViewApplication应用,命名为04-JSON解析,在ViewController. m文件中,定义一个加载数据的方法,用于解析天气预报的数据,代码如下:
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [self loadData];}//加载网络数据-(void)loadData{ //根据请求,加载网络数据 NSURL *url=[NSURL URLWithString:@"http://www.weather.com.cn/adat/sk/101010100.html"]; NSURLRequest *request=[NSURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:10.0]; NSURLSession *session = [NSURLSession sharedSession]; [[session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { //将二进制数据转换为字典 NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error]; NSLog(@"%@ 市温度 %@ 风向 %@ 风力 %@", result[@"weatherinfo"][@"city"], result[@"weatherinfo"][@"temp"], result[@"weatherinfo"][@"WD"], result[@"weatherinfo"][@"WS"]); }] resume];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end运行程序,结果如下:
如出现错误,可能是向服务器发送请求时,无法连接服务器,错误信息如下:
错误原因:从iOS9起,如果需要app发起访问网络需求,要采用https协议,如果使用http协议,则报错。
解决办法:修改Info.plist中的相关内容。
(1)在Info.plist中添加App TransportSecurity Setting,Type为Dictionary。
(2)在App TransportSecurity Setting下添加Allows Arbitrary Loads,Type为Boolean,值设置为YES。
添加完成后如下图所示:
注意:
反序列化:从服务器接收到数据之后,将二进制数据转换成NSArray或者NSDictionary类型。
序列化:在向服务器发送数据之前,将NSArray或者NSDictionary类型转换为二进制数据。
阅读全文
0 0
- iOS开发—解析天气预报
- iOS开发json解析之天气预报
- iOS开发:简易天气预报
- ios项目开发(天气预报项目):
- ios应用开发中如何获取天气预报?
- Android 开发学习心得(一)。pull解析xml文件_天气预报
- ios项目开发(天气预报项目):hmacsha1 例子
- ios项目开发(天气预报项目):hmacsha1 例子
- 天气预报(详细解析)
- json解析天气预报
- json天气预报解析
- Json解析之天气预报
- 天气预报源代码sbsWeather解析
- 安卓中xml解析天气预报
- Android天气预报(Json解析)
- ios开发——JSON解析
- ios开发——XML解析
- IOS开发解析XML
- SpringBoot工程+热部署进行远程调试
- 串口控件发送数据初始化设置(MFC-串口控件发送字符串)
- Tornado 文档学习:基础知识
- xamarin学习笔记A17(安卓Parcel和IParcelable)
- 自定义控件让EditText的drawableLeft与文本一起居中显示
- iOS开发—解析天气预报
- install cmake 3.5 && install leveldb
- iOS 改变状态栏颜色(亮白、黑色)
- 关于对H264码流的PS的封装的相关代码实现
- js 程序设计基础2
- iOS 各种demo链接汇总~富文本
- 数组名
- C语言中代码中的换行
- vue.js 初步--动态订单结算列表