4

我有位置管理器的经度和纬度,现在我正在尝试反转地理代码,以将该信息转换为地址字符串。我找到了下面的代码,据称可以做到这一点,但我收到了链接器错误。我认为这意味着我缺少一些框架或其他东西。我无法找到答案。任何人都可以帮忙吗?

错误:

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);

                       }
            }
    ];
4

3 回答 3

7

在文档中查找 kABPersonAddressStreetKey:

http://developer.apple.com/library/ios/#documentation/AddressBook/Reference/ABPersonRef_iPhoneOS/Reference/reference.html

它在顶部说它在 AddressBook 框架中。所以你需要链接到那个。

于 2012-10-29T04:13:11.013 回答
6

将以下框架添加到您的项目中,然后导入它。

AddressBook.framework
AddressBookUI.framework

在此处输入图像描述

于 2012-10-29T04:13:32.070 回答
2

您发布的代码使用了 AddressBook 框架中的一些常量。您需要将 AddressBook 框架添加到您的项目目标中。

于 2012-10-29T04:13:07.423 回答