2011-03-07 39 views
0

我想獲取位置的地標,但我所得到的是空的。這是我的頭文件。MKReverseGeocoder地標爲空

#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文件

#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的,但沒有打印任何值的任何屬性的,他們全部是空的。

回答

1

在NSLog的,對於字符串變量佔位符應%@(不只是@):

快速回復
NSLog(@"Placemark is : %@, %@, %@, %@", [placemark country], 
    [placemark locality], city, street); 
+0

真棒,很明顯:)感謝。 – Yogesh 2011-03-07 03:18:58