talisk

talisk 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑

Undergraduate / iOS Dev / Apple fans / Shutterbug

个人动态

talisk 回答了问题 · 2015-05-16

怎么利用天气预报接口根据城市名得到城市代码?

你说的应该是用的中央气象台API所需要的城市代码吧。

先把代码表存储到一个plist文件中

然后:

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"cityList" ofType:@"plist"];
_areaidDictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

areaidDictionary是区域id的字典

之后用

- (void)transToareaidfromLocation:(CLLocation *)location {
    self.areaid = nil;
    self.geocoder = [[CLGeocoder alloc] init];
    [self.geocoder reverseGeocodeLocation:location
    completionHandler:^(NSArray *placemarks, NSError *error) {
        if (error == nil && [placemarks count] > 0) {
            CLPlacemark *placemark = [placemarks objectAtIndex:0];
            self.city = placemark.locality;
            self.areaid = self.areaidDictionary[self.city];
            NSLog(@"city:%@",self.city);
            NSLog(@"areaid:%@",self.areaid);
        } else if (error == nil && [placemarks count] == 0) {
            NSLog(@"No location results were returned");
        } else if (error != nil) {
            NSLog(@"An error occurred:%@",error.description);
        }
    }];
}

在反地理编码的同时,利用字典找到areaid。
areaid就是你要的城市代码。

关注 5 回答 2

认证与成就

  • 获得 0 次点赞
  • 获得 4 枚徽章 获得 1 枚金徽章, 获得 1 枚银徽章, 获得 2 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2015-02-28
个人主页被 562 人浏览