|
Buenos días, Llevo días rompiéndome la cabeza con este tema y no consigo encontrar ni solución ni referencia alguna al problema. Al lío: Para simplificar el problema que estoy sufriendo en otro proyecto, creo desde Xcode 4.3.1 un nuevo proyecto de tipo "Single View Application" y marco "Use Automatic Reference Counting". Por razones de compatibilidad con iOS 4 fijo el Deployment Target a la 4.0 tanto en Project como en Targets. Necesito hacer un "reverse geocoder" de unas coordenadas para obtener la ubicación correspondiente. Para iOS 5.x tenemos la clase CLGeocoder. Para iOS 4.x no nos queda mas remedio que utilizar la clase "deprecated" MKReverseGeocoder. Importo el framework MapKit. ViewController.h:
ViewController.m:
Si ejecuto el proyecto tanto en el simulador como en un dispositivo con iOS5, funciona pefectamente. En cambio, si lo ejecuto con el simulador de la 4.3 o en un dispositivo (con 4.2.1) ni siquiera se hace la llamada a ninguno de los métodos delegados didFindPlaceMark o didFailWithError. Ahora bien, si en las opciones de compilación pongo para el ViewController.m el flag "-fno-objc-arc" funciona en todos los casos (lo he probado también creando un proyecto idéntico pero si marcar "Use Automatic Reference Counting" y funciona). La duda pues es: si se supone que ARC está soportado en iOS4 y MKReverseGeocoder aunque "deprecated" debería seguir funcionando, ¿porqué no es así en este caso? Saludos y perdón por el rollo. |
|
Tendras que hacerte una property de tipo strong para el MKReverseGeocoder. En tu caso , el ARC hace un release en el momento despues de tu Una vez que terminas con el haces No estoy seguro porque te funciona en un 5.0, pero creo que lo correcto es hacerlo como te indico mas arriba. Mira que le había dado vueltas al asunto... Con lo fácil que era!! Muchísimas gracias por tu respuesta.
(15 Mar '12, 14:14)
Saro
|