Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why am I getting this linker error in iOS when I create location strings from longitude and latitude?

I have the longitude and latitude from a location manager, now I am trying to reverse geo-code, to convert that information into address strings. I found the code below, that purportedly will do it, but I am getting a linker error. I think this means I am missing some framework or something. I was not able to find the answer. Can anyone help?

Error:

Apple Mach-O Linker Error
"_KABPersonAddressZIPKey", referenced from:

and so on for each of the strings that I am trying to generate.

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

                       }
            }
    ];
like image 839
Mr Ordinary Avatar asked Dec 06 '22 11:12

Mr Ordinary


1 Answers

Look up kABPersonAddressStreetKey in the documentation:

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

It says right at the top it's in the AddressBook framework. So you need to link to that.

like image 72
matt Avatar answered Dec 11 '22 10:12

matt