Диспетчер местоположения
Технологии, от которых зависит нормальное функционирование Core Location, недоступны вашему приложению. Вы не можете предписать Core Location использовать технологию GPS, WPS или триангуляцию. Но можете только указать желательную точность определения местоположения, а подсистема Core Location сама выберет ту технологию, которая лучше всего подходит для выполнения вашего запроса.
С прикладным интерфейсом Core Location API на самом деле очень легко работать. Основным классом, с которым нам чаще всего придется иметь дело, является CLLocation Manager, который обычно называется диспетчером местоположения (location manager). Для взаимодействия с Core Location нам придется создать экземпляр диспетчера местоположения аналогично следующему: CLLocationManager locationManager » [[CLLocationManager alloc) init);
В этом коде автоматически создается экземпляр диспетчера местоположения, но он пока еще не начинает опрос нашего местоположения. Для этого нам придется создать объект, соответствующий протоколу CLiocationManagerDelegate, и назначить его в качестве делегата диспетчера местоположения. Как только сведения о местоположении станут доступными или претерпят какие-то изменения, диспетчер местоположения вызовет методы этого делегата.
Процесс определения местоположения может занять некоторое время — вплоть до нескольких секунд.
После задания делегата необходимо также задать запрашиваемую точность определения местоположения. Как упоминалось ранее, степень такой точности не должна превышать абсолютно необходимую величину. Так, если вы разрабатываете приложение, которое должно определять только регион или страну местонахождения мобильного устройства, вам нет смысла указывать высокую степень точности. Не следует забывать, что чем выше запрашиваемая у Core Location точность, тем больше энергии заряда батареи питания будет израсходовано на выполнение такого запроса. Следует также иметь в виду, что запрашиваемая степень точности определения местоположения совсем не гарантируется.
- Дата: 24-01-2015, 12:16