IOS reverseGeocoder не удалось, когда я установил координату?
CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(27.941761 , -82.171537);
MKReverseGeocoder *reverseGeocoder =[[MKReverseGeocoder alloc] initWithCoordinate:coordinate];
NSLog(@"%g",coordinate.latitude);
NSLog(@"%g",coordinate.longitude);
reverseGeocoder.delegate = self;
[reverseGeocoder start];
//????????????????????????????????????????????????????????????????????????
}
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error{
NSLog(@"MKReverseGeocoder has failed.");
}
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark{
NSLog(@"current place is :%@",placemark);
}
Когда я использую рукописные координаты, обратное геокодирование не удалось. но когда я использую - координату, полученную из (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation, успешно. Зачем?
1 ответ
Когда я поместил ваш код в тестовый проект, он отлично работал для меня:
2013-08-16 23:45:55.966 TestMapApp[11261:a0b] 27.9418
2013-08-16 23:45:55.967 TestMapApp[11261:a0b] -82.1715
2013-08-16 23:45:57.831 TestMapApp[11261:a0b] current place is :6015 W Farkas And Turkey Creek Rd, Plant City, FL 33567, United States @ <+27.94176100,-82.17153700> +/- 0.00m
Вот что я думаю не так. Вы используете ARC, а не сохраняетеreverseGeocoder
"где угодно (как в ivar или свойстве), так как только функция, где вы создали"reverseGeocoder
"заканчивается, ARC выпускает его.
Пара других вещей:
Если в методах делегатов вам доступен параметр ошибки, вы должны использовать их. Как это:
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error{
NSLog(@"MKReverseGeocoder has failed with error %@.", [error localizedDescription]);
}
И, наконец, самое главное "MKReverseGeocoder
"устарела с iOS 5. Существует большая вероятность, что она исчезнет в будущих версиях iOS. Вы должны попытаться найти замену для обратного геокодирования.