iPhone SDK MKPlacemark

时间:2011-08-09 12:16:37

标签: iphone mapkit

我需要MapKit框架的帮助。我是iPhone开发的新手。 我有一个webview从一个带有3个参数的URL加载:

来自视图控制器的viewDidLoad方法:

NSString *hoUrlString = [NSString stringWithFormat:@"http://fastenergy.clavis-solutions.de/?iwidth=%@&iheight=%@&zipcode=%@", hString, wString, zipcode];

我无法获得邮政编码。我在url之前调用了这个:

locationController = [[HoCLController alloc] init];
locationController.delegate = self;
[locationController.locationManager startUpdatingLocation];

并在此方法中来自HoCLController.m

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation

,我打电话给

MKReverseGeocoder *geocoder = [[MKReverseGeocoder alloc] initWithCoordinate:coord];
    [geocoder setDelegate:self];
    [geocoder start];

然后我有这两种方法

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark {
    NSLog(@"The geocoder has returned: %@", placemark.postalCode);

}

-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error {
    NSLog(@"Error: %@", [error description]);
}

问题是,如何在网址中获取邮政编码?

谢谢你,请帮忙。

3 个答案:

答案 0 :(得分:0)

你的问题已经有答案了。 placemark.postalcode由您的邮政编码组成。 只需确保所有变量都包含正确的值。

zipcode = placemark.postalCode;

如果我的问题是对的,应该是答案。

答案 1 :(得分:0)

MKReverseGeocoder *geocoder = [[MKReverseGeocoder alloc] initWithCoordinate:coord]; 

您必须在此方法中传递坐标。所以检查coord是不是nil。我想这就是你想要的。

MKReverseGeocoder *geocoder = [[MKReverseGeocoder alloc] initWithCoordinate:newLocation.coordinate];

答案 2 :(得分:0)

哦好的,忘了.. 我想念一些事,抱歉

你是否继承CLLocationManager ??? 如果没有,为什么要这样分配:locationManager = [[HoCLController alloc] init];而不是:self.locationManager = [[CLLocationManager alloc] init];如果我出错了,我很抱歉,但我想我给你答案了..