Вопрос

Я пытаюсь отведать название города с Cllocation и MkReversegeCoder. В моем методе ViewDidload I Isstance CllocationManager:

self.locManager = [[CLLocationManager alloc] init];
locManager.delegate = self;
locManager.desiredAccuracy = kCLLocationAccuracyBest;
[locManager startUpdatingLocation];

и после:

- (void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation 
*)newLocation
fromLocation:(CLLocation *)oldLocation {
//some code to retrieve my information

MKReverseGeocoder *geoCoder = [[MKReverseGeocoder alloc]     
initWithCoordinate:newLocation.coordinate ];
geoCoder.delegate = self;
[geoCoder start];
}

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark  
*)placemark
{
MKPlacemark *myPlacemark = placemark;
citta.text = [placemark locality];
}

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error{
citta.text =@ "Unknow";

Приложение работает только в первый раз, когда я получаю свою ценность. во второй раз сбой приложения. Я думаю, что это потому, что Geocoder начинается, и я думаю, что у меня должен быть один и только один бегущий потенциал. (Но я действительно не стесняюсь этого ...). Каким образом я могу управлять геокодером?

Я вижу, что я могу инасим MkReversegeCoder в моей ViewDidload, используя CllocationCoordinate2D, но ... в каком способе я могу решить новое слово. Содействовать?

Я частично разрешил объявление Geocoder в качестве переменной класса и проверять

if (self.geocoder != nil) {
   [geocoder release];
}

Но .... если в моем

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark  
*)placemark

или в моем

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailedWithError:(@NSError 
*)error

Я отменил или отменить свой объект? Я чувствую себя так глупо: D

Это было полезно?

Решение

Не создавайте обратный геокодер в виде локальной переменной.

Посмотрите на примере MkReversegeCoder в Текущий адрес Пример приложения предоставляется Apple. Смотрите mapviewcontroller.h и mapviewcontroller.m.

Следуйте по одному рисунку в вашем коде.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top