Поскольку свойство locationServicesEnabled просто устарело, оно все еще доступно для использования (в течение неопределенного периода времени). Чтобы динамично справиться с ситуацией, вам нужно предоставить защитное решение. Подобно решению выше, я использовал:
BOOL locationAccessAllowed = NO ;
if( [CLLocationManager instancesRespondToSelector:@selector(locationServicesEnabled)] )
{
// iOS 3.x and earlier
locationAccessAllowed = locationManager.locationServicesEnabled ;
}
else if( [CLLocationManager respondsToSelector:@selector(locationServicesEnabled)] )
{
// iOS 4.x
locationAccessAllowed = [CLLocationManager locationServicesEnabled] ;
}
Вызов 'instancesRespondToSelector' проверяет, доступно ли свойство по-прежнему, затем я дважды проверяю, что сам класс поддерживает вызов метода (будучи статическим методом, он сообщит YES).
Просто еще один вариант.