你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS版本PM2.5空氣質量監控儀

iOS版本PM2.5空氣質量監控儀

編輯:IOS開發綜合

前言

鑒於柴靜版《蒼穹之下》的火爆,或許更多的人會關心環境,空氣質量等環保因素,參考某學院的Swift版本的PM2.5的獲取,本人自己寫個Objective-C版本的。

基本原理

從服務器獲取當前的空氣質量數據,氣象中心開放接口, 亞洲空氣質量實時監控, 參照人家的教程使用亞洲空氣質量監控。
本地解析數據,獲取PM2.5數值,進行顯示。

具體實現

NSNumber *str;

-(void) loadData{
self.msgText.text = @loading....;
NSURL *url = [NSURL URLWithString:@http://aqicn.org/publishingdata/json];
NSString *post=@postData;
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@POST];
[request setHTTPBody:postData];
[request setTimeoutInterval:10.0];

//GCD實現異步接口通信與UI更新的同步
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSOperationQueue *queue = [[NSOperationQueue alloc]init];
    [NSURLConnection sendAsynchronousRequest:request
        queue:queue
        completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
        if (error) {
            NSLog(@Httperror:%@%d, error.localizedDescription,error.code);
        }else{
            NSInteger responseCode = [(NSHTTPURLResponse *)response statusCode];
            NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(@HttpResponseCode:%d, responseCode);
            NSLog(@HttpResponseBody %@,responseString);
            NSData *resData = [[NSData alloc] initWithData:[responseString dataUsingEncoding:NSUTF8StringEncoding]];
            NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:resData options:NSJSONReadingMutableLeaves error:nil];
            NSLog(@resultDic=%@, resultDic);

            arr = [[resultDic valueForKey:@pollutants] valueForKey:@value];
            str = [[arr objectAtIndex:0] objectAtIndex:0];
            NSLog(@PM2.5=%@, [[arr objectAtIndex:0] objectAtIndex:0]);
        }
    }];
        dispatch_async(dispatch_get_main_queue(),^{
    self.msgText.text = str.stringValue;
        });
    });
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self loadData];
// start reloadData
}
- (IBAction)reloadData:(id)sender {
NSLog(@Button Clicked);
[self loadData];
NSLog(@Button Clicked);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved