Iphone 如何使用SubThroway属性初始化MKPlacemark?
在我的应用程序中,我正在创建自己的地名,我需要街道编号与街道名称分开。但是我不知道如何使用地址字典初始化一个Iphone 如何使用SubThroway属性初始化MKPlacemark?,iphone,ios,mapkit,Iphone,Ios,Mapkit,在我的应用程序中,我正在创建自己的地名,我需要街道编号与街道名称分开。但是我不知道如何使用地址字典初始化一个MKPlacemark,这样街道号就会在subthorougheare属性中返回,因为街道号没有一个单独的ABPerson常量。我的解决方案是将MKPlacemark子类化,并重写地址属性来识别一组自定义的街道号要匹配每个属性的地址字典键 假设自定义placemark类命名为CustomPlacemark,以下是用于定义addressDictionary的新键并重写属性方法的主要代码位 在
MKPlacemark
,这样街道号就会在subthorougheare属性中返回,因为街道号没有一个单独的ABPerson
常量。我的解决方案是将MKPlacemark子类化,并重写地址属性来识别一组自定义的街道号要匹配每个属性的地址字典键
假设自定义placemark类命名为CustomPlacemark
,以下是用于定义addressDictionary
的新键并重写属性方法的主要代码位
在CustomPlacemark.h中
extern NSString * const kCustomPlacemarkAddressThoroughfareKey;
extern NSString * const kCustomPlacemarkAddressSubThoroughfareKey;
extern NSString * const kCustomPlacemarkAddressLocalityKey;
extern NSString * const kCustomPlacemarkAddressSubLocalityKey;
extern NSString * const kCustomPlacemarkAddressAdministrativeAreaKey;
extern NSString * const kCustomPlacemarkAddressSubAdministrativeAreaKey;
extern NSString * const kCustomPlacemarkAddressPostalCodeKey;
extern NSString * const kCustomPlacemarkAddressCountryKey;
extern NSString * const kCustomPlacemarkAddressCountryCodeKey;
在CustomPlacemark.m中
NSString * const kCustomPlacemarkAddressThoroughfareKey = @"thoroughfare";
NSString * const kCustomPlacemarkAddressSubThoroughfareKey = @"subThoroughfare";
NSString * const kCustomPlacemarkAddressLocalityKey = @"locality";
NSString * const kCustomPlacemarkAddressSubLocalityKey = @"subLocality";
NSString * const kCustomPlacemarkAddressAdministrativeAreaKey = @"administrativeArea";
NSString * const kCustomPlacemarkAddressSubAdministrativeAreaKey = @"subAdministrativeArea";
NSString * const kCustomPlacemarkAddressPostalCodeKey = @"postalCode";
NSString * const kCustomPlacemarkAddressCountryKey = @"country";
NSString * const kCustomPlacemarkAddressCountryCodeKey = @"countryCode";
- (NSString *)thoroughfare
{
return [self.addressDictionary objectForKey:kCustomPlacemarkAddressThoroughfareKey];
}
- (NSString *)subThoroughfare
{
return [self.addressDictionary objectForKey:kCustomPlacemarkAddressSubThoroughfareKey];
}
- (NSString *)locality
{
return [self.addressDictionary objectForKey:kCustomPlacemarkAddressLocalityKey];
}
- (NSString *)subLocality
{
return [self.addressDictionary objectForKey:kCustomPlacemarkAddressSubLocalityKey];
}
- (NSString *)administrativeArea
{
return [self.addressDictionary objectForKey:kCustomPlacemarkAddressAdministrativeAreaKey];
}
- (NSString *)subAdministrativeArea
{
return [self.addressDictionary objectForKey:kCustomPlacemarkAddressSubAdministrativeAreaKey];
}
- (NSString *)postalCode
{
return [self.addressDictionary objectForKey:kCustomPlacemarkAddressPostalCodeKey];
}
- (NSString *)country
{
return [self.addressDictionary objectForKey:kCustomPlacemarkAddressCountryKey];
}
- (NSString *)countryCode
{
return [self.addressDictionary objectForKey:kCustomPlacemarkAddressCountryCodeKey];
}