Почему я получаю эту ошибку компоновщика в iOS, когда создаю строки местоположения из долготы и широты?

У меня есть долгота и широта от менеджера местоположения, теперь я пытаюсь изменить геокод, чтобы преобразовать эту информацию в строки адреса. Я нашел приведенный ниже код, который предположительно сделает это, но я получаю сообщение об ошибке компоновщика. Я думаю, это означает, что мне не хватает какой-то структуры или чего-то еще. Я не смог найти ответ. Кто-нибудь может помочь?

Ошибка:

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

                       }
            }
    ];

person Mr Wolf    schedule 29.10.2012    source источник


Ответы (3)


Добавьте следующую платформу в свой проект и импортируйте ее.

AddressBook.framework
AddressBookUI.framework

введите здесь описание изображения

person Community    schedule 29.10.2012
comment
Нет необходимости в инфраструктуре AdddressBookUI, так как нужны только несколько констант из фреймворка AddressBook. - person rmaddy; 29.10.2012

Посмотрите kABPersonAddressStreetKey в документации:

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

Вверху написано, что это в рамках AddressBook. Так что вам нужно ссылку на это.

person matt    schedule 29.10.2012

Код, который вы разместили, использует некоторые константы из структуры AddressBook. Вам необходимо добавить структуру AddressBook в цель вашего проекта.

person rmaddy    schedule 29.10.2012