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];
MKPlacemarkのaddressDictionaryを作成するときは、ABPerson内で定義されている「AddressProperty」定数を使用することをお勧めします。これらの定数はCFStringRef型であるため、NSDictionary内でキーとして使用するには、(NSString *)にキャストする必要があることに注意してください。
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
};
プロジェクトのビルド設定に「AddressBook.framework」を追加する必要があることに注意してください。また、ヘッダー(.hファイル)にインポートします。
#import <AddressBook/AddressBook.h>
次に、実装(.mファイル)で次を使用できます。
(NSString*)kABPersonAddressStreetKey
(NSString*)kABPersonAddressCityKey
(NSString*)kABPersonAddressStateKey
(NSString*)kABPersonAddressCountryKey