[英]Why am I getting this linker error in iOS when I create location strings from longitude and latitude?
我有位置管理器的经度和纬度,现在我试图反转地理代码,将该信息转换为地址字符串。 我发现下面的代码,据称会这样做,但我收到链接器错误。 我认为这意味着我错过了一些框架或其他东西。 我无法找到答案。 有人可以帮忙吗?
错误:
Apple Mach-O Linker Error
"_KABPersonAddressZIPKey", referenced from:
对于我想要生成的每个字符串等等。
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
CLLocation *newLocation = [[CLLocation alloc]initWithLatitude:latitude
longitude:longitude];
[geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error)
{
if (error) {
NSLog(@"Geocode failed with error: %@", error);
return;
}
if (placemarks && placemarks.count > 0)
{
CLPlacemark *placemark = placemarks[0];
NSDictionary *addressDictionary = placemark.addressDictionary;
NSString *address = [addressDictionary objectForKey:(NSString *)kABPersonAddressStreetKey];
NSString *city = [addressDictionary objectForKey:(NSString *)kABPersonAddressCityKey];
NSString *state = [addressDictionary objectForKey:(NSString *)kABPersonAddressStateKey];
NSString *zip = [addressDictionary objectForKey:(NSString *)kABPersonAddressZIPKey];
NSLog(@"%@ %@ %@ %@", address,city, state, zip);
}
}
];
在文档中查找kABPersonAddressStreetKey:
它说道,它位于AddressBook框架的顶层。 所以你需要链接到那个。
将以下框架添加到项目中,然后导入它。
AddressBook.framework
AddressBookUI.framework
您发布的代码使用了AddressBook框架中的一些常量。 您需要将AddressBook框架添加到项目目标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.