2010-04-30 4 views
0

я уже мой метод, реализовать reverseGeocoderиспользованием performSelector

- (void)reversing { 
geoCoder=[[MKReverseGeocoder alloc] initWithCoordinate:locManager.location.coordinate]; 
geoCoder.delegate=self; 
[geoCoder start]; 
} 

я отзывать задним ходом в другом методе с этим:

[self performSelector:@selector(reversing) withObject:nil afterDelay:10]; 

и я получаю

2010-04-30 17:44:17.616 high[1167:207] Retrive City Milano 
2010-04-30 17:44:17.628 high[1167:207] geocoder released 
2010-04-30 17:44:18.723 high[1167:207] Error Domain=MKErrorDomain Code=4 "Operation  
could not be completed. (MKErrorDomain error 4.)" 
Program received signal: “EXC_BAD_ACCESS”. 

Может кто-то помочь меня? : D

ответ

1

Похоже, вы освобождаете геокодер или его делегат, что вызывает BAD_ACCESS. Коэффициенты хороши, что вы уже выпустили его в обработчике ошибок или, возможно, через dealloc, когда ваш вызывающий объект выпущен.

+0

mhmmm Я делаю релиз геокодера: при ошибке (после этого я получаю сообщение об ошибке) и на didFindPlacemark, после того, как я использую свой obj :-(если я установил автообновление, мои приложения обрушились на первый вызов обратного вызова, только с BAD_ACCESS – zebra

0

mhmmm Теперь performSelector уже работают mhmm 10-12 раз, а после выхода с этим

Fri Apr 30 18:39:15 unknown high[1533] <Warning>: Retrive City Milano 
Fri Apr 30 18:39:15 unknown high[1533] <Warning>: geocoder released 
Fri Apr 30 18:39:21 unknown high[1533] <Error>: *** -[MKReverseGeocoder  _mapkit_cache_heapTime]: unrecognized selector sent to instance 0x181ab0 
Fri Apr 30 18:39:21 unknown high[1533] <Error>: *** Terminating app due to uncaught  exception 'NSInvalidArgumentException', reason: '*** -[MKReverseGeocoder  _mapkit_cache_heapTime]: unrecognized selector sent to instance 0x181ab0' 
Fri Apr 30 18:39:21 unknown high[1533] <Error>: Stack: (
853417245, 
845594132, 
853421053, 
852917017, 
852879424, 
852520544, 
853224229, 
852521740, 
852695624, 
852661532, 
834346012, 
834339464, 
871973071, 
871972849, 
837931029, 
837876319, 
837876577, 
837875951, 
837875865, 
837875737, 
837875641, 
853164967, 
853163039, 
834376564, 
817839152, 
817832496, 
10921, 
10816 
) 
Fri Apr 30 18:39:21 unknown UIKitApplication:com.zeronet.TestTest[0xc5d1][1533] <Notice>: terminate called after throwing an instance of 'NSException' 
Fri Apr 30 18:39:23 unknown ReportCrash[1536] <Notice>: Formulating crash report for process high[1533] 
Fri Apr 30 18:39:23 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.zeronet.TestTest[0xc5d1]) Job appears to have crashed: Abort trap 
Fri Apr 30 18:39:23 unknown SpringBoard[29] <Warning>: Application 'high' exited abnormally with signal 6: Abort trap 
Fri Apr 30 18:39:24 unknown ReportCrash[1536] <Error>: Saved crashreport to /var/mobile/Library/Logs/CrashReporter/high_2010-04-30-183921_zeroPhone.plist using uid: 0 gid: 0, synthetic_euid: 501 egid: 0 
+1

Вы должны отредактировать исходный вопрос для таких вещей: добавление ответов, которые не являются ответами, вызывает путаницу :-). –

+0

Далее: неясно, откуда приходит сообщение «освобожденный геокодер», что может ввести в заблуждение. Это сообщение может (просто), возможно, также быть симптомом чрезмерного освобождения после выпуска в вашем обработчике ошибок или что-то еще. Не могу сказать без кода. –

+0

У меня есть change performSelector с nstimer, потому что я не понимаю, что performSelector запускает мой метод после x секунды, а не через каждые X секунд. кстати в моем старом коде я остановить мой геокодера запрос здесь: - (Недействительными) reverseGeocoder: (MKReverseGeocoder *) геокодер didFailWithError: (NSError *) Ошибка { \t citta.text = @ "Unknow"; \t // NSLog (@ "% @", ошибка); \t [geoCoder cancel]; \t NSLog (@ «геокодер выпущен Unknow»); } - (void) reverseGeocoder: (MKReverseGeocoder *) геокодер сделалFindPlacemark: (MKPlacemark *) метка { citta.text = [местонахождение метки]; NSLog (@ «Retrive City% @», [местоположение myPlacemark]); [geoCoder cancel]; – zebra

1

My answer to a similar question:

Я встретил и решить этот вопрос в последнее время. В моем случае, когда Apple Map не может найти никакого результата для запроса, он иногда просто бросает эту ошибку «MKErrorDomain = 4». Так что я закончил, просто рассматриваю это как «результат не найден».

Было очень сложно найти это, MapKit нуждается в лучшей системе обработки ошибок.