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