首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为MKPlacemark创建addressDictionary?

如何为MKPlacemark创建addressDictionary?
EN

Stack Overflow用户
提问于 2011-10-17 02:14:15
回答 2查看 13.4K关注 0票数 30
代码语言:javascript
复制
    placemark = [[MKPlacemark alloc]initWithCoordinate:storedCoordinate addressDictionary:addressDict];

我试着为上面的代码创建字典,但都不起作用:(

代码语言:javascript
复制
    NSDictionary *addressDict = [[NSDictionary alloc] initWithObjectsAndKeys:
    location.countryCode, @"CountryCode",
    location.country,@"kABPersonAddressCountryKey", 
    location.state, kABPersonAddressStateKey, 
    location.city, @"City",
    location.street, kABPersonAddressStreetKey,
    location.zip, kABPersonAddressZIPKey,
    nil];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-27 05:03:40

在为MKPlacemark创建addressDictionary时,建议使用ABPerson中定义的"Address Property“常量。请注意,由于这些常量的类型为CFStringRef,因此您需要将它们强制转换为(NSString *),以便将它们用作NSDictionary中的键。

代码语言:javascript
复制
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+的更新:使用新的联系人框架

代码语言:javascript
复制
NSDictionary *addressDict = @{
                              CNPostalAddressStreetKey : location.street,
                              CNPostalAddressCityKey : location.city,
                              CNPostalAddressStateKey : location.state,
                              CNPostalAddressPostalCodeKey : location.zip,
                              CNPostalAddressCountryKey : location.country,
                              CNPostalAddressISOCountryCodeKey : location.countryCode
                              };
票数 48
EN

Stack Overflow用户

发布于 2013-10-09 17:47:02

值得注意的是,您需要将'AddressBook.framework‘添加到您的项目构建设置中。还可以在头文件(.h文件)中导入:

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

然后在您的实现(.m文件)中,您可以使用:

代码语言:javascript
复制
(NSString*)kABPersonAddressStreetKey
(NSString*)kABPersonAddressCityKey
(NSString*)kABPersonAddressStateKey
(NSString*)kABPersonAddressCountryKey
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7786276

复制
相关文章

相似问题

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