2013-04-01 34 views
4

當我使用CLGeocoder獲取當前城市名稱時,遇到了一個非常奇怪的問題。 我用來驗證這個地方是庫比蒂諾。我100%確定這不是一個覆蓋問題。iOS反向地理編碼問題沒有返回值placemark.locality

NSLog正確地打印了地標,但是當它來到placemark.locality時,它打印出(空) 。我嘗試了其他屬性,他們都工作。我環顧四周,人們似乎也有類似的問題,但是沒有可行的答案。在此先感謝您的幫助。

的代碼如下:

[geoCoder reverseGeocodeLocation:newLocation 
         completionHandler:^(NSArray *placemarks, NSError *error) { 

          NSLog(@"%@",placemarks); 

          CLPlacemark *placemark =[placemarks objectAtIndex:0]; 
          NSLog(@"%@",placemark); 
          NSString *city = placemark.locality; 
          NSLog(@"City:%@", city); 
          if (!city){ 
           city = placemark.subAdministrativeArea; 
          } 
          NSLog(@"City:%@", city); 
+0

什麼IOS版本,你定位? – Ares

+0

iOS 4.3之後的版本的目標,全部失敗。BTW,我目前正在建立與6.1 SDK,這將是一個問題? – piaChai

+0

locality僅在iOS 5.0及更高版本中可用。 – Ares

回答

3

你可以試試這個,

[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) { 
      for (CLPlacemark *placemark in placemarks) { 
       NSString *city = [placemark locality]; 
       NSLog(@"%@", city); 
      } 
}