В iOS 6 свойство purpose CLLocationManager, чтобы описать причину использования служб определения местоположения (@property(copy, nonatomic) NSString *purpose), устарело.
Какая замена, если таковая имеется, предлагается Apple?
Ответ 1
Замена свойства purpose в iOS 6 - это новый ключ Info.plist с именем NSLocationUsageDescription (aka "Конфиденциальность - описание использования местоположения" ).
Однако CLLocationManager.h имеет этот комментарий:
* Устаревший. Задайте целую строку в Info.plist, используя ключ NSLocationUsageDescription.
В вашем коде вы можете установить как ключ, так и свойство purpose (но вы можете проверить, отвечает ли менеджер местоположений на этот селектор первым, если/когда этот метод фактически будет удален в будущем).
Если вы используете под управлением iOS 6, менеджер местоположений будет использовать ключ.
При запуске меньше чем iOS 6 ключ будет проигнорирован и будет использовано свойство purpose.
Ответ 2
У меня была одна и та же проблема в моем приложении.
Я обнаружил, что теперь вы можете установить Activity CLLocationManager!. Вы можете выбрать различные типы CLActivityTypes, поэтому вам больше не нужно писать свою собственную цель.
Здесь, например, для приложения на основе навигации