placemark = [[MKPlacemark alloc]initWithCoordinate:storedCoordinate addressDictionary:addressDict];我试着为上面的代码创建字典,但都不起作用:(
NSDictionary *addressDict = [[NSDictionary alloc] initWithObjectsAndKeys:
location.countryCode, @"CountryCode",
location.country,@"kABPersonAddressCountryKey",
location.state, kABPersonAddressStateKey,
location.city, @"City",
location.street, kABPersonAddressStreetKey,
location.zip, kABPersonAddressZIPKey,
nil];发布于 2012-11-27 05:03:40
在为MKPlacemark创建addressDictionary时,建议使用ABPerson中定义的"Address Property“常量。请注意,由于这些常量的类型为CFStringRef,因此您需要将它们强制转换为(NSString *),以便将它们用作NSDictionary中的键。
NSDictionary *addressDict = @{
(NSString *) kABPersonAddressStreetKey : location.street,
(NSString *) kABPersonAddressCityKey : location.city,
(NSString *) kABPersonAddressStateKey : location.state,
(NSString *) kABPersonAddressZIPKey : location.zip,
(NSString *) kABPersonAddressCountryKey : location.country,
(NSString *) kABPersonAddressCountryCodeKey : location.countryCode
};iOS 9+的更新:使用新的联系人框架
NSDictionary *addressDict = @{
CNPostalAddressStreetKey : location.street,
CNPostalAddressCityKey : location.city,
CNPostalAddressStateKey : location.state,
CNPostalAddressPostalCodeKey : location.zip,
CNPostalAddressCountryKey : location.country,
CNPostalAddressISOCountryCodeKey : location.countryCode
};发布于 2013-10-09 17:47:02
值得注意的是,您需要将'AddressBook.framework‘添加到您的项目构建设置中。还可以在头文件(.h文件)中导入:
#import <AddressBook/AddressBook.h>然后在您的实现(.m文件)中,您可以使用:
(NSString*)kABPersonAddressStreetKey
(NSString*)kABPersonAddressCityKey
(NSString*)kABPersonAddressStateKey
(NSString*)kABPersonAddressCountryKeyhttps://stackoverflow.com/questions/7786276
复制相似问题