AFK解析-4-解析更多数据
添加一个细节视图,各种元素如图:
DetailVC.h的代码:
#import <UIKit/UIKit.h>
#import "NSDictionary+weather.h" //需要调用解析weather的方法列表
@interface DetailVC : UIViewController
@property(strong,nonatomic)NSDictionary *weatherDic; //存储天气信息的字典
@property (weak, nonatomic) IBOutlet UILabel *dateLabel;
@property (weak, nonatomic) IBOutlet UILabel *tempLabel;
@property (weak, nonatomic) IBOutlet UIImageView *weatherImage;
@property (weak, nonatomic) IBOutlet UILabel *descLabel;
@end
接下来基本就是体力活了。解析各种数据。在TableVC.m中添加以下方法:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"weatherDetail"]){
UITableViewCell *cell = (UITableViewCell *)sender;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
DetailVC *detailVC=(DetailVC *)segue.destinationViewController;
//将子视图实例化
NSDictionary *dic;
switch (indexPath.section) {
case 0:{
dic =[self.wDic currentCondition];
break;
}
case 1:{
dic = [[self.wDic upcomingWeather] objectAtIndex:indexPath.row];
break;
}
default:{
break;
}
}
detailVC.weatherDic=dic;
}
}
如果是第0个部分,则解析今日天气,即current_condition部分,如果是第1个部分,则存储weather部分。
添加一个方法来测试:
- (void)getAllData
{
NSString *weatherDesc=[self.weatherDic weatherDescription];
descLabel.text=weatherDesc;
}
结果如图:
Cloudy确实显示,接下来就很容易了。