Я пытаюсь получить название города с помощью cllocation и mkreversegeocoder.
в моем методе viewdidload я искажаю управление размещением:
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";
Приложение работает только в первый раз, когда я получаю свою ценность. во второй раз приложение вылетает.
Я думаю, потому что геокодер запущен, и я думаю, что у меня должен быть запущен один и только один istance. (но я действительно не уверен в этом ...). каким образом я могу управлять геокодером?
Я вижу, что могу использовать mkreversegeocoder в моей viewdidload, используя cllocationcoordinate2d, но ... каким образом я могу получить newlocation.coordinate?
Я частично разрешил объявление геокодера переменной класса и проверку
if (self.geocoder != nil) {
[geocoder release];
}
но .... если по моему
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark
*)placemark
или по моему
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailedWithError:(@NSError
*)error
я отпускаю или отменяю свой объект?
Я чувствую себя так глупо: D