首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MKReverseGeocoder placemark为空

MKReverseGeocoder placemark为空
EN

Stack Overflow用户
提问于 2011-03-07 11:07:33
回答 1查看 1.5K关注 0票数 0

我正在尝试获得一个位置的地标,但我得到的都是空的。这是我的头文件。

代码语言:javascript
复制
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>


@interface ReverseGeoCodingHelper : NSObject<MKReverseGeocoderDelegate> {
    MKReverseGeocoder *reverseGeocoder;
    MKPlacemark *dootPlacemark;
}

@property (nonatomic, retain) MKReverseGeocoder *reverseGeocoder;
@property (nonatomic, retain) MKPlacemark *dootPlacemark;

- (void)reverseGeocode;

@end

这是我的.m文件

代码语言:javascript
复制
#import "ReverseGeoCodingHelper.h"

@implementation ReverseGeoCodingHelper
@synthesize reverseGeocoder,dootPlacemark;


- (void)reverseGeocode
{

    if (self.reverseGeocoder != nil)
    {
        // release the existing reverse geocoder to stop it running
        [self.reverseGeocoder release];
    }

    CLLocationCoordinate2D locationToLookup = {37.40091, -122.01635};

    self.reverseGeocoder =
    [[MKReverseGeocoder alloc]initWithCoordinate:locationToLookup];

    reverseGeocoder.delegate = self;
    [reverseGeocoder start];
}

// MKReverseGeocoderDelegate methods
/**
 Gets called when MKReverseGeocoder finds info for your coordinate, 
 you can retrieve info you need from corresponding fields of MKPlacemark instance you    
get
*/
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder  didFindPlacemark:(MKPlacemark  
*)placemark{

    NSString* city = [placemark.addressDictionary valueForKey:@"City"];
    NSString* street = [placemark.addressDictionary valueForKey:@"Street"]; 
    NSLog(@"Placemark is : @, @, @, @", [placemark country], [placemark locality], 
 city, street);
}
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error{
    NSString *errorMessage = [error localizedDescription];
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Cannot obtain   
        address." message:errorMessage
                                                delegate:nil
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
[alertView show];
[alertView release];
}

- (void)dealloc{
[reverseGeocoder release];
[super dealloc];
}

@end

正在调用didFindPlacemark方法,但是NSLog没有打印任何属性的值,它们都是空的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-07 11:16:06

在NSLog中,字符串变量的占位符应为%@ (而不仅仅是@):

代码语言:javascript
复制
NSLog(@"Placemark is : %@, %@, %@, %@", [placemark country], 
    [placemark locality], city, street);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5215411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档