仿iPhone天气预报

前言

之前写的都是一些UI控件的使用,数据来源都是自己创建的,这次的天气预报使用到了网络请求到数据,所以首先要学习网络请求数据然后对数据进行处理,找到自己要用到的数据,第一天,被网络请求困住了好久,几乎没有什么进度,到第二天,请求到了数据,理了理思路,之后就写的还算是比较流畅
GitHub地址天气预报

难点

思路

  • First
    在这里插入图片描述
    每添加一个城市就在scrollerView上添加一个自定义的WeatherView(UIView),底下的按钮是跳转到管理界面,将城市添加到一个可变数组中
    Second
    在这里插入图片描述
    这里的管理界面是一个TableView自定义的cell,点击加号就可以进行城市搜索,然后添加城市
    在这里插入图片描述
    这也是一个tableView,点击单元格之后就会转回到管理界面。然后就显示添加的城市
    在这里插入图片描述

  • 关于数据添与tableView上

    • 第一个坑
    //要判断数据是否完全已经获取完成,每个城市的数据是否都已经获取到
     HeadTableViewCell *headCell = [_tableView dequeueReusableCellWithIdentifier:@"headCell" forIndexPath:indexPath];
            if (_messageArray.count && _weekArray.count) {
            		..........
            }
    
    • 第二个坑

      在管理界面中有显示城市的温度和时间,之前我是用数据来进行存储,根据下标表示对应城市数组中城市的温度,但是!!!这样当我返回到管理界面时,温度和城市竟然是不对应的,ok吧,能力有限,咱也不懂,咱也还没有学,应该就要懂了,所以我用了两个字典,这样就不会不对应了!

    
    		id objc = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
            if ([objc[@"HeWeather6"][0][@"status"] isEqualToString:@"ok"]) {
           		  NSString  *dataString = objc[@"HeWeather6"][0][@"update"][@"loc"];
                    
                  NSString *tempString = objc[@"HeWeather6"][0][@"now"][@"tmp"];
                  [self->_cityDataDictionary setObject:tempString forKey:self->_cityNameArray[i]];
                  [self->_cityDateDictionary setValue:dataString forKey:self->_cityNameArray[i]];
                  [self performSelectorOnMainThread:@selector(datareload) withObject:self waitUntilDone:NO];
             }
    
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值