Существенные альтернативы
Может, вы еще помните, что в головоломке «У бассейна» мы упоминали о том, что iPod Touch и Wi-Fi iPad обладают ограниченными средствами определения местонахождения. В iOS узнать, где вы сейчас находитесь, можно несколькими способами.
Core Location определит Ваше местонахождение.
GPS — первое, что обычно приходит в голову для получения информации о местонахождении, но iPhone первого поколения не оснащались модулями GPS, не было их и на iPod Touch с Wi-Fi iPad. Впрочем, это вовсе не означает, что вы оказались в тупике. В iOS есть три метода определения местонахождения: GPS, триангуляция вышек сотовой связи и служба позиционирования Wi-Fi.
Технология GPS обладает самой высокой точностью, за ней следуют сотовые вышки и Wi-Fi. Устройства iPhone поддерживают два или три метода, тогда как iPod Touch и Wi-Fi iPad используют только Wi-Fi, но и это лучше, чем ничего. Если у вас голова идет крутом, не беспокойтесь! Core выбирает используемый метод в зависимости от имеющихся возможностей и требуемой точности. Таким образом, вам не придется заниматься выбором источника данных iOS сделает это за вас в объекте LocationManager.
Работа Core Location зависит от LocationManager приложения.
Чтобы использовать подсистему Core Location, вы просто создаете объект LocationManager и приказываете ему начать отправку обновлений.
LocationManager предоставляет информацию о местонахождении, высоте и ориентации устройства в зависимости от его возможностей. Для получения информации необходимо передать делегата и требуемую точность. CLLocationManager оповещает вас о наличии изменений и о возникающих ошибках. Проследите за тем, чтобы ситуация, при которой вы не получаете данных от LocationManager, корректно обрабатывалась в приложении. Даже если устройство поддерживает позиционирование, оно просит пользователя дать согласие на получение данных о местонахождении. Пользователь может отказаться от определения текущей позиции (случайно или сознательно).
Где следует разместить этот код в нашем приложении?
Вероятно, нам понадобится новый заголовочный файл ДЛ5 констант Core Location?
Да, и новая библиотека.
Для сокращения размера приложений фирма Apple разбила системную функциональность на библиотеки. При включении в приложение новой функциональности (такой, как Core Location) необходимо добавить соответствующую библиотеку. Помните, что библиотеки не добавляются автоматически, в приложение необходимо включить соответствующую директиву.
Добавление новой библиотеки.
Давайте добавим библиотеку Core Location в приложение. Выделите цель iBountyHunter, щелкните на вкладке Build Phases и раскройте раздел Link Binary with Libraries. Затем щелкните на кнопке + и выберите строку CoreLocation Framework.
- Дата: 9-01-2015, 14:29