2012-12-18 106 views
0

所以我查看了Apple獲取用戶位置的示例代碼。這對我和它的顯示正確的位置很好。將zipcode輸入到文本字段

現在我想在我創建的名爲「zipCode」的文本框中顯示郵政編碼。我會怎麼做?

tryed:

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateLocations:(NSArray *)locations { 
    CLLocation *location = [locations objectAtIndex:0]; 
    NSLog(@"lat%f - lon%f", location.coordinate.latitude, location.coordinate.longitude); 
    zipCode.text = self.placemark.postalCode; 
} 

但沒有奏效。

+0

您是否收到郵政編碼? –

+0

不,我沒有。但我也不知道我怎樣才能在一個的NSLog顯示它 –

回答

1

您需要使用reverseGeocodeLocation,如:

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateLocations:(NSArray *)locations { 

    CLLocation *location = [locations objectAtIndex:0]; 
    CLGeocoder *geocoder = [[CLGeocoder alloc] init]; 
    [geocoder reverseGeocodeLocation:location completionHandler: 
    ^(NSArray* placemarks, NSError* error){ 
     if ([placemarks count] > 0) 
     { 
      CLPlacemark *placemark = [placemarks objectAtIndex:0]; 
      zipCode.text = placemark.postalCode; 
     } 
    }]; 
} 

記住導入CoreLocation.framework

+0

我得到3個錯誤: /Users/florianschaal/Developer/Janssenpakketapp/Janssenpakketapp/NewTrackTraceViewController.m:83:24:初始值設定元素不是編譯時常 /Users/florianschaal/Developer/Janssenpakketapp/Janssenpakketapp/NewTrackTraceViewController.m:84:1:預期標識符或 '(' /Users/florianschaal/Developer/Janssenpakketapp/Janssenpakketapp/NewTrackTraceViewController.m:84:34:未申報使用標識符'位置' –

+0

您刪除了先前的代碼:CLLocation * location = [locations objectAtIndex:0];我已更新我的回答 –

+0

它真的有用!謝謝:D –

0

你,如果你想了解有關地圖上的位置隱蔽信息使用反向地理編碼。
全都寫成here