CLLocationManager
Оператор импорта
Swift
import CoreLocation
Objective C
@import CoreLocation;
Доступность
Доступный в iOS 2.0 и позже.
CLLocationManager класс является центральной точкой для конфигурирования поставки расположения - и связанные с заголовком события к Вашему приложению. Вы используете экземпляр этого класса для установления параметров, определяющих, когда расположение и возглавляющие события должны быть поставлены и запустить и остановить фактическую поставку тех событий. Можно также использовать менеджера расположения объект получить новое расположение и возглавляющие данные.
Менеджер расположения объект предоставляет поддержку для следующих связанных с расположением действий:
Отслеживание больших или маленьких изменений в текущем расположении пользователя с конфигурируемой степенью точности.
Создание отчетов о возглавляющих изменениях от встроенного компаса. (только iOS)
Контроль отличных областей интереса и генерация событий расположения, когда пользователь вводит или оставляет те области.
Задержка поставки обновлений информации о местоположении, в то время как приложение в фоновом режиме. (iOS 6 и позже только)
Создание отчетов о диапазоне к соседним маркерам.
Сконфигурировать и использовать a CLLocationManager объект поставить события:
Всегда запрашивайте авторизацию использовать службы определения местоположения и проверку, чтобы видеть, доступны ли желаемые службы, как описано в Выяснении у Разрешения Использовать Службы определения местоположения.
Создайте экземпляр
CLLocationManagerкласс и хранилище сильная ссылка к нему где-нибудь в Вашем приложении.При хранении сильной ссылки менеджеру расположения, объект требуется, пока все задачи, включающие тот объект, не завершены. Поскольку большая часть менеджера расположения, которого задачи выполняют асинхронно, храня Вашего менеджера расположения в локальной переменной, недостаточна.
Присвойте пользовательский объект
delegateсвойство. Этот объект должен соответствоватьCLLocationManagerDelegateпротокол.Сконфигурируйте любые дополнительные свойства, относящиеся к желаемой службе.
Вызовите надлежащий метод запуска для начала поставки событий.
Все расположение - и связанные с заголовком обновления поставлено связанному объекту делегата, который является пользовательским объектом, который Вы обеспечиваете. Для получения информации о методах делегата Вы используете, чтобы получить события, видеть Ссылку на протокол CLLocationManagerDelegate.
Запрос разрешения использовать службы определения местоположения
Использование служб определения местоположения требует авторизации пользователя. Кроме того, некоторые службы определения местоположения требуют присутствия определенных аппаратных средств на данном устройстве. Например, заголовок информации доступен только на устройствах, содержащих аппаратный компас. До использования служб определения местоположения Ваше приложение должно запросить авторизацию от пользователя использовать те службы, и это должно проверить наличие целевых служб. Типичная последовательность для использования служб определения местоположения следующие:
Вызовите
authorizationStatusметод класса получить текущее состояние авторизации для Вашего приложения.Если состояние авторизации
kCLAuthorizationStatusRestrictedилиkCLAuthorizationStatusDenied, Вашему приложению не разрешают использовать службы определения местоположения, и необходимо прервать попытку использовать их.Создайте Ваш
CLLocationManagerвозразите и присвойте делегата в нем.Сохраните сильную ссылку своему менеджеру расположения где-нибудь в Вашем приложении.
В iOS, если состояние авторизации было
kCLAuthorizationStatusNotDetermined, вызовитеrequestWhenInUseAuthorizationилиrequestAlwaysAuthorizationметод для запроса надлежащего типа авторизации от пользователя.В зависимости от служб Вы нуждаетесь, вызываете один или больше следующих методов:
При использовании стандартной службы определения местоположения вызовите
locationServicesEnabledметод.При использовании значительной службы изменения расположения вызовите
significantLocationChangeMonitoringAvailableметод.При использовании возглавляющей информации вызовите
headingAvailableметод.Если Вы контролируете географический или области маркера, вызовите
isMonitoringAvailableForClass:метод.При выполнении расположения на маркерах Bluetooth вызовите
isRangingAvailable
Безопасно запустить службы определения местоположения, прежде чем будет определено состояние авторизации Вашего приложения. Несмотря на то, что можно запустить службы определения местоположения, те службы не поставляют данных до изменений состояния авторизации в kCLAuthorizationStatusAuthorizedAlways или kCLAuthorizationStatusAuthorizedWhenInUse. Быть уведомленным, когда состояние авторизации изменяется, реализация locationManager:didChangeAuthorizationStatus: метод в Вашем менеджере расположения делегат.
Для служб Вы используете, конфигурируете любые свойства, связанные с той службой точно. Базовое Расположение управляет питанием настойчиво путем выключения аппаратных средств, когда это не необходимо. Например, установка желаемой точности для событий расположения к одному километру дает менеджеру расположения гибкость, чтобы выключить аппаратные средства GPS и положиться исключительно на WiFi или радио ячейки, которые могут привести к значительной экономии электроэнергии.
Получение текущего расположения пользователя
Существует две опции для конфигурирования связанных с расположением служб:
Используйте стандартную службу определения местоположения, позволяющую Вам указывать желаемую точность данных расположения и получать обновления, когда изменяется расположение.
Используйте значительную службу изменения расположения, обеспечивающую более ограниченный набор отслеживания опций, но предлагающую значительную экономию электроэнергии по стандартным службам определения местоположения. В iOS эта служба может также запустить Ваше приложение по мере необходимости для поставки обновлений информации о местоположении.
Стандартная служба определения местоположения является самой подходящей для приложений, поставляющих связанную с расположением информацию непосредственно пользователю, но это может использоваться другими типами приложений также. Для запуска службы сконфигурируйте desiredAccuracy и distanceFilter свойства менеджера расположения и затем вызывают startUpdatingLocation метод. Вы никогда не должны указывать значение точности, больше, чем, в чем Вы нуждаетесь. Базовое Расположение использует значение точности, которое Вы указываете для управления питанием лучше. Более высокая степень точности требует более точных аппаратных средств как GPS, использующий больше питания.
Значительная служба изменения расположения лучше подходит для приложений, хотящих получить начальное расположение пользователя и затем только, чтобы хотеть знать, когда изменяется то расположение. Эта служба требует присутствия сотовых аппаратных средств и поставляет события менее часто, чем стандартные службы определения местоположения. Для запуска значительной службы изменения расположения вызовите startMonitoringSignificantLocationChanges метод.
Независимо от которой службы определения местоположения Вы используете, о данных расположения сообщают Вашему приложению через менеджера расположения, связал объект делегата. Поскольку может потребоваться несколько секунд для возврата начального расположения, менеджер расположения обычно поставляет ранее кэшируемые данные расположения сразу и затем поставляет более актуальные данные расположения, поскольку это становится доступным. Поэтому это всегда - хорошая идея проверить метку времени любого объекта расположения прежде, чем принять любые меры. Если обе службы определения местоположения включены одновременно, они поставляют события с помощью того же набора методов делегата.
Когда приложение в фоновом режиме, в iOS 6 и позже, можно задержать поставку данных расположения. Рекомендуется использовать эту функцию в ситуациях, где приложение могло обработать данные позже без любых проблем. Например, приложение, отслеживающее расположение пользователя на походном маршруте, могло задержать обновления, пока пользователь не увеличивает определенное расстояние, и затем обработайте точки одновременно. Задержка обновлений помогает сэкономить электроэнергию, позволяя Вашему приложению остаться спящей в течение более длительных промежутков времени.
Используя области для контроля граничных пересечений
Можно использовать контролирующую область службу, которая будет уведомлена, когда пользователь пересекает основанную на области границу. Контроль области применяет обоих к географическим областям (представленный CLCircularRegion класс) и указывать областям путь (представленный CLBeaconRegion класс). Вы область, контролирующая для обнаружения граничные пересечения указанной области и Вы используете те граничные пересечения для выполнения связанных задач. Например, после приближения работники химчистки, приложение могло уведомить пользователя для взятия любой одежды, которая была понижена и теперь готова.
Для запуска контроля области сконфигурируйте надлежащий объект области и передайте его startMonitoringForRegion: метод Вашего менеджера расположения. В iOS зарегистрированные области сохраняются между запусками Вашего приложения. Если граничное пересечение области происходит, в то время как Ваше приложение для iOS не работает, система автоматически будит его (или повторно запускает его), в фоновом режиме так, чтобы это могло обработать событие. В этом случае словарь опций передал application:didFinishLaunchingWithOptions: метод Вашего делегата приложения содержит ключ UIApplicationLaunchOptionsLocationKey указать, что Ваше приложение было запущено из-за связанного с расположением события. Во время процесса перезапуска необходимо воссоздать менеджера расположения объект и присвоить делегата, способного к обработке связанных с областью событий. После того, как Вы делаете это, система поставляет уведомление области, для которого было запущено Ваше приложение. Все области, которые Вы сконфигурировали ранее, сделаны доступными в monitoredRegions свойство любого менеджера расположения возражает, что Вы создаете.
В OS X контроль области работает только, в то время как приложение работает (или на переднем плане или на фоне), и система пользователя бодрствует. Система не запускает приложения для поставки связанных с областью уведомлений. Точно так же, если пользователь помещает компьютер для сна, система не поставляет контрольные уведомления области приложению. Если пользователь будит компьютер в контролируемой области, система действительно поставляет уведомления области Вашему приложению, если это работает. Однако, если компьютер вводит и выходит из области прежде чем быть разбуженным, никакое уведомление не поставлено.
Контрольная служба области работает независимо от любых служб определения местоположения в использовании Вашим приложением, и можно использовать его в сочетании с любой из других служб. Контроль области не поддерживается на всех устройствах. Используйте regionMonitoringAvailable метод класса определить, может ли использоваться контроль области.
Определение близости к маркерам
Можно использовать службу расположения маркера для определения приблизительного расстояния до устройств та поддержка iBeacon технология. Расположение маркера включает прислушивание к устройствам, широковещательно передающим их присутствие по Bluetooth LE. Когда Вы начинаете располагаться, Вы получаете информацию об идентифицировании каждого маркера, который находится в диапазоне, включая информацию о том, является ли тот маркер соседним или более далеким. Обновления тогда поставлены каждый раз, когда изменяется состояние маркера.
Для запуска расположения маркера создайте a CLBeaconRegion объект, идентифицирующий маркеры, Вы хотите и передаете тот объект startRangingBeaconsInRegion: метод. Поскольку менеджер расположения обнаруживает маркеры, это поставляет ту информацию своему делегату locationManager:didRangeBeacons:inRegion: метод. В области, где много маркеров активны и перемещается пользователь, обновления могут часто поставляться. Для сохранения времени работы от батареи не располагайтесь для маркеров все время. Рекомендуемая практика должна использовать контрольную службу области, чтобы обнаружить присутствие маркеров сначала и начать располагаться только после обнаружения одного или более маркеров. И, конечно, необходимо прекратить располагаться, как только у Вас есть информация, Вам нужно или когда Вы перемещаетесь из диапазона Ваших маркеров.
Configuring Heading-Related Services
В iOS можно использовать службу заголовка для получения связанной с компасом информации об устройствах с надлежащими аппаратными средствами. Приложения, реализующие опции навигации или ориентации в пространстве, могут использовать информацию о компасе для определения, к какому пути пользователь обращенным. Служба заголовка не поддерживается в OS X.
Для начала поставки связанных с заголовком событий присвойтесь, делегат в менеджере расположения возражают и вызывают startUpdatingHeading метод. Если обновления информации о местоположении также включены, менеджер расположения возвращает и заголовок истины и магнитные значения заголовка. Если обновления информации о местоположении не включены, менеджер расположения возвращает только магнитное значение заголовка.
Базовое Расположение поставляет возглавляющие данные Вашему приложению, в то время как это находится на переднем плане. Когда Ваше приложение перемещается в фон, остановки поставки события, если Вашему приложению не включили фоновый режим обновлений информации о местоположении, и стандартная служба определения местоположения работает. Вы можете включить фоновые режимы из вкладки Capabilities Вашего проекта XCode, но должны сделать так, только если можно использовать возглавляющие данные практически в то время как в фоновом режиме.
Получение посещаемых расположений
В iOS служба посещений обеспечивает альтернативу значительной службе изменения расположения для приложений, для которых нужна информация о расположении об интересных местах, которые посетил пользователь. Например, если пользователь находится в одном расположении в течение длительного периода времени, служба могла бы генерировать событие, когда пользователь достигает того расположения и другого, когда пользователь покидает то расположение. Служба предназначается для приложений, которые могли бы уже использовать значительную службу изменения расположения и хотеть еще более низкое питание способ сделать так. Вы не использовали бы эту службу для создания приложений навигации или приложений, полагающихся на регулярные обновления информации о местоположении.
Для начала поставки связанных с посещением событий присвойтесь, делегат в менеджере расположения возражают и вызывают startMonitoringVisits метод. Поскольку менеджер расположения генерирует события посещения, это поставляет ту информацию своему делегату locationManager:didVisit: метод. Данные о событии, поставленные Вашему делегату, включают только информацию, произошедшую после запуска поставки событий. Другими словами, если Вы запустите поставку событий после того, как пользователь достиг интересного расположения, событие, поставленное системой, когда пользователь отбыл, то то расположение не отразит время фактического поступления. Если система завершает Ваше приложение, эта служба повторно запускает его, когда новые события посещения готовы быть поставленными.
Используя службы определения местоположения в фоновом режиме
Большинство служб определения местоположения предназначается, чтобы использоваться, в то время как Ваше приложение находится на переднем плане, но некоторые могут также работать в фоновом режиме. В некоторых случаях события расположения могут даже заставить Ваше приложение быть повторно запущенным для обработки события. Для выполнения большинства служб определения местоположения в фоновом режиме необходимо включить фоновый режим обновлений информации о местоположении на вкладке Capabilities проекта XCode. Для служб, запускающих Ваше приложение, необходимо запросить (и предоставлены), «Всегда» авторизация от пользователя.
В то время как приложение работает на переднем плане, стандартная служба определения местоположения обычно поставляет события. Когда Ваше приложение в фоновом режиме, эта служба поставляет события только, когда фоновый режим обновлений информации о местоположении включен для приложения. Эта служба не повторно запускает завершенные приложения для iOS.
В то время как приложение работает на переднем плане или фоне, значительная служба изменения расположения обычно поставляет события. Для завершенного приложения для iOS эта служба повторно запускает приложение для поставки событий. Использование этой службы «всегда» требует авторизации от пользователя.
В то время как приложение работает на переднем плане или фоне, контрольная служба области обычно поставляет события. (Можно использовать эту службу и для географических областей и для областей маркера.) Для завершенного приложения для iOS эта служба повторно запускает приложение для поставки событий. Использование этой службы «всегда» требует авторизации от пользователя.
В то время как приложение работает на переднем плане, расположение маркера обычно поставляет события. Когда Ваше приложение в фоновом режиме, эта служба поставляет события только, когда фоновый режим обновлений информации о местоположении включен для приложения, и стандартная служба определения местоположения работает. (Если область маркера
notifyEntryStateOnDisplayсвойствоYEStrue, пробуждение устройства заставляет приложение располагаться для маркеров в течение нескольких секунд в фоновом режиме.) Эта служба не повторно запускает завершенные приложения для iOS; однако, Вы можете быть повторно запущены путем контроля областей маркера с помощью контрольной службы области.В то время как приложение для iOS работает на переднем плане, служба заголовка обычно поставляет события. Когда Ваше приложение в фоновом режиме, эта служба поставляет события только, когда фоновый режим обновлений информации о местоположении включен для приложения, и стандартная служба определения местоположения работает. Эта служба не повторно запускает завершенные приложения для iOS.
В то время как приложение для iOS работает на переднем плане, служба посещения обычно поставляет события. Когда Ваше приложение в фоновом режиме, эта служба поставляет события только, когда фоновый режим обновлений информации о местоположении включен для приложения, и стандартная служба определения местоположения работает. Для завершенного приложения для iOS эта служба повторно запускает приложение для поставки событий. Использование этой службы «всегда» требует авторизации от пользователя.
Включение фонового режима обновлений информации о местоположении гарантирует, что приложение продолжает получать события расположения в то время как в фоновом режиме. Когда приложение перемещается в фон, система добавляет индикатор служб определения местоположения к строке состояния, чтобы позволить пользователю знать, что приложение использует службы определения местоположения. Система может все еще завершить приложение в любое время для предъявления претензий в отношении его памяти или других ресурсов.
Для служб, повторно запускающих приложение, система добавляет UIApplicationLaunchOptionsLocationKey ключ к словарю опций передал делегату приложения во время запуска. Когда этот ключ присутствует, необходимо перезапустить службы определения местоположения приложения сразу же. Словарь опций не включает информацию о самом событии расположения. Необходимо сконфигурировать нового менеджера расположения объект и делегировать и запустить службы определения местоположения снова для получения любых незаконченных событий. В iOS 7.1 и позже, службы, заставляющие приложение быть повторно запущенным, делают так даже после пользовательских выходов силы приложение. В предыдущих версиях iOS выход силы приложение препятствовало тому, чтобы было повторно запущено приложение.
Если Ваше приложение ничего не должно делать с событиями расположения сразу же, рассмотрите обновления информации о местоположении задержки с помощью allowDeferredLocationUpdatesUntilTraveled:timeout: метод. Все еще поставляя событиям расположения для Вашего приложения нужно, задержка поставки обновлений информации о местоположении упрощает для Базового Расположения сохранять время работы от батареи.
-
Разрешение запросов использовать службы определения местоположения, в то время как приложение находится на переднем плане.
Объявление
Swift
func requestWhenInUseAuthorization()Objective C
- (void)requestWhenInUseAuthorizationОбсуждение
Когда текущее состояние авторизации
kCLAuthorizationStatusNotDetermined, этот метод работает асинхронно и предлагает пользователю давать разрешение к приложению использовать службы определения местоположения. Пользовательская подсказка содержит текст отNSLocationWhenInUseUsageDescriptionвведите свое приложениеInfo.plistфайл и присутствие того ключа требуются при вызове этого метода. После того, как состояние определяется, менеджер расположения поставляет результаты делегатуlocationManager:didChangeAuthorizationStatus:метод. Если текущее состояние авторизации - что-нибудь кромеkCLAuthorizationStatusNotDetermined, этот метод ничего не делает и не вызываетlocationManager:didChangeAuthorizationStatus:метод.Необходимо вызвать этот метод или
requestAlwaysAuthorizationметод до использования служб определения местоположения. Если пользователь предоставляет, «когда в использовании» авторизация к Вашему приложению, Ваше приложение может запустить большинство (но не все) службы определения местоположения, в то время как это находится на переднем плане. (Приложения не могут использовать службы, автоматически повторно запускающие приложение, такое как контроль области или значительная служба изменения расположения.), Когда запущено на переднем плане, службы продолжают работать в фоновом режиме, если Ваше приложение включило фоновые обновления информации о местоположении на вкладке Capabilities Вашего проекта XCode. Попытки запустить службы определения местоположения, в то время как Ваше приложение работает в фоновом режиме, перестанут работать. Когда Ваше приложение перемещается в фон с активными службами определения местоположения, система выводит на экран индикатор служб определения местоположения в строке состояния.Для получения дополнительной информации о
NSLocationWhenInUseUsageDescriptionключ, посмотрите информационную Ключевую Ссылку Списка свойств.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 8.0 и позже.
-
Разрешение запросов использовать службы определения местоположения каждый раз, когда работает приложение.
Объявление
Swift
func requestAlwaysAuthorization()Objective C
- (void)requestAlwaysAuthorizationОбсуждение
Когда текущее состояние авторизации
kCLAuthorizationStatusNotDetermined, этот метод работает асинхронно и предлагает пользователю давать разрешение к приложению использовать службы определения местоположения. Пользовательская подсказка содержит текст отNSLocationAlwaysUsageDescriptionвведите свое приложениеInfo.plistфайл и присутствие того ключа требуются при вызове этого метода. После того, как состояние определяется, менеджер расположения поставляет результаты делегатуlocationManager:didChangeAuthorizationStatus:метод. Если текущее состояние авторизации - что-нибудь кромеkCLAuthorizationStatusNotDetermined, этот метод ничего не делает и не вызываетlocationManager:didChangeAuthorizationStatus:метод.Необходимо вызвать этот метод или
requestWhenInUseAuthorizationметод до использования служб определения местоположения. Когда пользователь «всегда» предоставляет авторизацию Вашему приложению, Ваше приложение может запустить любую из доступных служб определения местоположения, в то время как Ваше приложение работает на переднем плане или фоне. Кроме того, службы, позволяющие Вашему приложению быть запущенным в фоновом режиме, продолжают делать так.Для получения дополнительной информации о
NSLocationAlwaysUsageDescriptionключ, посмотрите информационную Ключевую Ссылку Списка свойств.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 8.0 и позже.
-
Возвращает состояние авторизации приложения для использования служб определения местоположения.
Объявление
Swift
class func authorizationStatus() -> CLAuthorizationStatusObjective C
+ (CLAuthorizationStatus)authorizationStatusВозвращаемое значение
Значение, указывающее, разрешено ли приложение использовать службы определения местоположения.
Обсуждение
Состоянием авторизации данного приложения управляет система и определяют несколько факторов. Приложения должны быть явно разрешены использовать службы определения местоположения пользователем, и службы определения местоположения должны самостоятельно в настоящее время включаться для системы. Когда Ваше приложение сначала пытается использовать службы определения местоположения, запрос на авторизацию пользователя выведен на экран автоматически.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.2 и позже.
-
Возвращает булево значение, указывающее, включены ли службы определения местоположения на устройстве.
Объявление
Swift
class func locationServicesEnabled() -> BoolObjective C
+ (BOOL)locationServicesEnabledВозвращаемое значение
YEStrueесли включены службы определения местоположения;NOfalseесли они не.Обсуждение
Пользователь может включить или отключить службы определения местоположения из приложения Настроек путем переключения переключателя Location Services в целом.
Необходимо проверить возвращаемое значение этого метода прежде, чем запустить обновления информации о местоположении, чтобы определить, включили ли пользователю службы определения местоположения для текущего устройства. Службы определения местоположения предлагают пользователям в первый раз, когда они пытаются использовать связанную с расположением информацию в приложении, но не запрашивает последующие попытки. Если пользователь отклоняет использование служб определения местоположения, и Вы пытаетесь запустить обновления информации о местоположении так или иначе, менеджер расположения сообщает об ошибке ее делегату.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.0 и позже.
-
Возвращает булево значение, указывающее, поддерживает ли устройство задержанные обновления информации о местоположении.
Объявление
Swift
class func deferredLocationUpdatesAvailable() -> BoolObjective C
+ (BOOL)deferredLocationUpdatesAvailableВозвращаемое значение
YEStrueесли устройство поддерживает задержанные обновления информации о местоположении илиNOfalseесли это не делает.Обсуждение
Задержанные обновления информации о местоположении являются способом для менеджера расположения часто избегать будить фоновое приложение для поставки изменений расположения. Обычно, когда приложение хочет обновления информации о местоположении в фоновом режиме, приложение должно быть разбужено каждый раз, когда поступает новое событие. Пробуждение приложения использует питание, которое в некоторых ситуациях могло бы быть потрачено впустую, если приложение ничего не может сделать с информацией о расположении кроме журнала это и возвратиться для сна так или иначе. Когда Ваше приложение может сделать что-то полезное с данными и затем обработать обновления одновременно, задержка обновлений информации о местоположении предоставляет Вам возможность ожидать до времени.
Задержанные обновления информации о местоположении требуют присутствия аппаратных средств GPS и не могут поддерживаться на всех устройствах на iOS.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 6.0 и позже.
-
Возвращает булево значение, указывающее, доступно ли значительное отслеживание изменений расположения.
Объявление
Swift
class func significantLocationChangeMonitoringAvailable() -> BoolObjective C
+ (BOOL)significantLocationChangeMonitoringAvailableВозвращаемое значение
YEStrueесли контроль изменения расположения доступен;NOfalseесли это не.Обсуждение
Этот метод указывает, в состоянии ли устройство сообщить, что обновления на основе значительного расположения изменяются только. Эта возможность обеспечивает огромную экономию электроэнергии для приложений, которые хотят отследить приблизительное расположение пользователя и не нужны в очень точной информации о положении.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.0 и позже.
-
Возвращает булево значение, указывающее, в состоянии ли менеджер расположения генерировать связанные с заголовком события.
Объявление
Swift
class func headingAvailable() -> BoolObjective C
+ (BOOL)headingAvailableВозвращаемое значение
YEStrueесли заголовок данных доступен;NOfalseесли это не.Обсуждение
Заголовок данных может не быть доступным на всех основанных на iOS устройствах. Необходимо проверить значение, возвращенное этим методом прежде, чем попросить, чтобы менеджер расположения поставил связанные с заголовком события.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.0 и позже.
-
Возвращает булевскую переменную, указывающую, поддерживает ли устройство контроль области с помощью указанного класса.
Объявление
Swift
class func isMonitoringAvailableForClass(_regionClass: AnyClass!) -> BoolObjective C
+ (BOOL)isMonitoringAvailableForClass:(Class)regionClassПараметры
regionClassКонтрольный класс области от платформы Набора Карты. Этот класс должен быть убыванием от
CLRegionкласс.Возвращаемое значение
YEStrueесли устройство способно к контролирующим областям с помощью указанного класса илиNOfalseесли это не.Обсуждение
Доступность контрольной поддержки области зависит от аппаратного настоящего на устройстве. Этот метод не принимает во внимание доступность служб определения местоположения или факта, что пользователь, возможно, отключил их для приложения или системы; необходимо определить состояние авторизации приложения отдельно.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 7.0 и позже.
См. также
-
Возвращает булевскую переменную, указывающую ли расположение поддержек устройства маркеров Bluetooth.
Объявление
Swift
class func isRangingAvailable() -> BoolObjective C
+ (BOOL)isRangingAvailableВозвращаемое значение
YEStrueесли расположение поддержек устройства илиNOfalseесли это не делает.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 7.0 и позже.
-
delegateСвойствоОбъект делегата получить события обновления.
Объявление
Swift
unowned(unsafe) var delegate: CLLocationManagerDelegate!Objective C
@property(assign, nonatomic) id< CLLocationManagerDelegate > delegateСпециальные замечания
В iOS это свойство объявляется как
nonatomic. В OS X это объявляется какatomic.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 2.0 и позже.
-
Запускает генерацию обновлений, сообщающих о текущем расположении пользователя.
Объявление
Swift
func startUpdatingLocation()Objective C
- (void)startUpdatingLocationОбсуждение
Этот метод сразу возвращается. Вызов этих причин метода, которые фиксирует менеджер расположения для получения начального расположения (который может занять несколько секунд) и уведомь делегата путем вызова
locationManager:didUpdateLocations:метод. (В iOS 5 и ранее, вызовы диспетчера расположенияlocationManager:didUpdateToLocation:fromLocation:метод вместо этого.) После этого получатель генерирует события обновления прежде всего когда значение вdistanceFilterсвойство превышено. Обновления могут быть поставлены в других ситуациях все же. Например, если аппаратные средства собирают более точное чтение расположения, получатель может отправить другое уведомление.Вызов этого метода несколько раз по очереди автоматически не приводит к новым сгенерированным событиям. Вызов
stopUpdatingLocationпромежуточный, однако, действительно заставляет новое начальное событие быть отправленным в следующий раз, когда Вы вызываете этот метод.Если Вы запускаете эту службу, и Ваше приложение приостановлено, система останавливает поставку событий, пока Ваше приложение не начинает работать снова (или на переднем плане или на фоне). Если Ваше приложение завершается, поставка новых событий расположения останавливается в целом. Поэтому, если Ваше приложение должно получить события расположения, в то время как в фоновом режиме, оно должно включать
UIBackgroundModesключ (сlocationзначение) вInfo.plistфайл.В дополнение к Вашему объекту делегата реализация
locationManager:didUpdateLocations:метод, это должно также реализоватьlocationManager:didFailWithError:метод для ответа на потенциальные ошибки.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 2.0 и позже.
-
Останавливает генерацию обновлений информации о местоположении.
Объявление
Swift
func stopUpdatingLocation()Objective C
- (void)stopUpdatingLocationОбсуждение
Вызовите этот метод каждый раз, когда Ваш код больше не должен получать связанные с расположением события. Отключение поставки события дает получателю опцию отключения надлежащих аппаратных средств (и таким образом экономия электроэнергии), когда никаким клиентам не нужны данные расположения. Можно всегда перезапускать генерацию обновлений информации о местоположении путем вызова
startUpdatingLocationметод снова.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 2.0 и позже.
См. также
-
pausesLocationUpdatesAutomaticallyСвойствоБулево значение, указывающее, может ли менеджер расположения объект приостановить обновления информации о местоположении.
Объявление
Swift
var pausesLocationUpdatesAutomatically: BoolObjective C
@property(assign, nonatomic) BOOL pausesLocationUpdatesAutomaticallyОбсуждение
Разрешение менеджеру расположения приостановить обновления может улучшить время работы от батареи относительно целевого устройства, не жертвуя данными расположения. Когда это свойство установлено в
YEStrue, обновления пауз менеджера расположения (и выключает надлежащие аппаратные средства), время от времени, когда вряд ли изменятся данные расположения. Например, если пользователь останавливается для еды при использовании приложения навигации, менеджер расположения мог бы приостановить обновления сроком на время. Можно помочь определению того, когда приостановить обновления информации о местоположении путем присвоения значенияactivityTypeсвойство.Значение по умолчанию этого свойства
YEStrue.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 6.0 и позже.
См. также
-
distanceFilterСвойствоМинимальное расстояние (измеренный в метрах) устройство должно переместиться горизонтально, прежде чем событие обновления сгенерировано.
Объявление
Swift
var distanceFilter: CLLocationDistanceObjective C
@property(assign, nonatomic) CLLocationDistance distanceFilterОбсуждение
Это расстояние измеряется относительно ранее поставленного расположения. Используйте значение
kCLDistanceFilterNoneбыть уведомленным относительно всех перемещений. Значение по умолчанию этого свойстваkCLDistanceFilterNone.Это свойство используется только в сочетании со стандартными службами определения местоположения и не используется при наблюдении значительных изменений расположения.
Специальные замечания
В iOS это свойство объявляется как
nonatomic. В OS X это объявляется какatomic.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 2.0 и позже.
-
desiredAccuracyСвойствоТочность данных расположения.
Объявление
Swift
var desiredAccuracy: CLLocationAccuracyObjective C
@property(assign, nonatomic) CLLocationAccuracy desiredAccuracyОбсуждение
Получатель прилагает все усилия для достижения требуемой точности; однако, фактическая точность не гарантируется.
Необходимо присвоить значение этому свойству, которое подходяще для сценария использования. Например, при необходимости в текущем расположении только в километре необходимо указать
kCLLocationAccuracyKilometerи нетkCLLocationAccuracyBestForNavigation. Определение расположения с большей точностью требует большего количества времени и большего количества питания.Запрашивая высокоточные данные расположения, начальное событие, поставленное службой определения местоположения, может не иметь точности, которую Вы запросили. Служба определения местоположения поставляет начальное событие как можно быстрее. Это тогда продолжает определять расположение с точностью, Вы запросили и поставляете дополнительные события, по мере необходимости, когда те данные доступны.
Значение по умолчанию этого свойства
kCLLocationAccuracyBest.Это свойство используется только в сочетании со стандартными службами определения местоположения и не используется при наблюдении значительных изменений расположения.
Специальные замечания
В iOS это свойство объявляется как
nonatomic. В OS X это объявляется какatomic.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 2.0 и позже.
-
activityTypeСвойствоТип пользовательского действия связался с обновлениями информации о местоположении.
Объявление
Swift
var activityType: CLActivityTypeObjective C
@property(assign, nonatomic) CLActivityType activityTypeОбсуждение
Когда обновления информации о местоположении могут быть автоматически приостановлены, менеджер расположения использует информацию в этом свойстве как сигнал для определения. Приостановка обновлений дает системе возможность сэкономить электроэнергию в ситуациях, где вряд ли будет изменяться расположение пользователя. Например, если тип действия
CLActivityTypeAutomotiveNavigationи никакие изменения расположения недавно не произошли, радио могли бы быть выключены, пока перемещение не обнаруживается снова.Значение по умолчанию этого свойства
CLActivityTypeOther.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 6.0 и позже.
-
Запускает генерацию обновлений на основе значительных изменений расположения.
Объявление
Swift
func startMonitoringSignificantLocationChanges()Objective C
- (void)startMonitoringSignificantLocationChangesОбсуждение
Этот метод инициирует поставку событий расположения асинхронно, возвращаясь после вызова его. События расположения поставлены Вашему делегату
locationManager:didUpdateLocations:метод. Первое событие, которое будет поставлено, обычно является последний раз кэшируемым событием расположения (если таковые имеются), но может быть более новым событием при некоторых обстоятельствах. Получение текущей фиксации расположения может занять несколько дополнительных секунд, так, несомненно, сможет проверить метки времени на событиях расположения в Вашем методе делегата.После возврата текущего расположения фиксируют, получатель генерирует события обновления только, когда обнаруживается существенное изменение в расположении пользователя. Это не полагается на значение в
distanceFilterсвойство для генерации событий. Вызов этого метода несколько раз по очереди автоматически не приводит к новым сгенерированным событиям. ВызовstopMonitoringSignificantLocationChangesпромежуточный, однако, действительно заставляет новое начальное событие быть отправленным в следующий раз, когда Вы вызываете этот метод.Если Вы запускаете эту службу, и Ваше приложение впоследствии завершается, система автоматически повторно запускает приложение в фон, если поступает новое событие. В таком случае словарь опций передал
application:willFinishLaunchingWithOptions:иapplication:didFinishLaunchingWithOptions:методы Вашего делегата приложения содержат ключUIApplicationLaunchOptionsLocationKeyуказать, что Ваше приложение было запущено из-за события расположения. На перезапуск необходимо все еще сконфигурировать менеджера расположения объект и вызвать этот метод, чтобы продолжать получать события расположения. При перезапуске служб определения местоположения текущее событие сразу поставлено делегату. Кроме того,locationсвойство Вашего менеджера расположения, объект заполняется с новым объектом расположения даже перед запуском служб определения местоположения.В дополнение к Вашему объекту делегата реализация
locationManager:didUpdateLocations:метод, это должно также реализоватьlocationManager:didFailWithError:метод для ответа на потенциальные ошибки.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.0 и позже.
-
Останавливает поставку событий расположения на основе значительных изменений расположения.
Объявление
Swift
func stopMonitoringSignificantLocationChanges()Objective C
- (void)stopMonitoringSignificantLocationChangesОбсуждение
Используйте этот метод для остановки поставки событий расположения, запущенной с помощью
startMonitoringSignificantLocationChangesметод.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.0 и позже.
-
Запускает генерацию обновлений, сообщающих о текущем заголовке пользователя.
Объявление
Swift
func startUpdatingHeading()Objective C
- (void)startUpdatingHeadingОбсуждение
Этот метод сразу возвращается. Вызов этого метода, когда получатель останавливается, заставляет его получать первоначальный заголовок и уведомлять Вашего делегата. После этого получатель генерирует события обновления когда значение в
headingFilterсвойство превышено.Прежде, чем вызвать этот метод, необходимо всегда проверять
headingAvailableсвойство, чтобы видеть, поддерживается ли заголовок информации на текущем устройстве. Если заголовок информации не поддерживается, вызывание этого метода не имеет никакого эффекта и не приводит к поставке событий Вашему делегату.Вызов этого метода несколько раз по очереди автоматически не приводит к новым сгенерированным событиям. Вызов
stopUpdatingHeadingпромежуточный, однако, действительно заставляет новое начальное событие быть отправленным в следующий раз, когда Вы вызываете этот метод.Если Вы запускаете эту службу, и Ваше приложение приостановлено, система останавливает поставку событий, пока Ваше приложение не начинает работать снова (или на переднем плане или на фоне). Если Ваше приложение завершается, поставка новых событий заголовка останавливается в целом и должна быть перезапущена Вашим кодом, когда повторно запускается приложение.
Возглавляющие события поставлены
locationManager:didUpdateHeading:метод Вашего делегата. Если существует ошибка, вызовы диспетчера расположенияlocationManager:didFailWithError:метод Вашего делегата вместо этого.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 3.0 и позже.
См. также
-
Останавливает генерацию заголовка обновлений.
Объявление
Swift
func stopUpdatingHeading()Objective C
- (void)stopUpdatingHeadingОбсуждение
Вызовите этот метод каждый раз, когда Ваш код больше не должен получать связанные с заголовком события. Отключение поставки события дает получателю опцию отключения надлежащих аппаратных средств (и таким образом экономия электроэнергии), когда никаким клиентам не нужны данные расположения. Можно всегда перезапускать генерацию заголовка обновлений путем вызова
startUpdatingHeadingметод снова.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 3.0 и позже.
См. также
-
Отклоняет возглавляющее калибровочное представление от экрана сразу.
Объявление
Swift
func dismissHeadingCalibrationDisplay()Objective C
- (void)dismissHeadingCalibrationDisplayОбсуждение
Базовое Расположение использует возглавляющее калибровочное предупреждение для калибровки доступных аппаратных средств заголовка по мере необходимости. Дисплей этого представления является автоматическим, принимая Ваши поддержки делегата, выводящие на экран представление вообще. Если представление выведено на экран, можно использовать этот метод для отклонения его после надлежащего количества времени, чтобы гарантировать, что весьма надлежащим образом разрушен пользовательский интерфейс приложения.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 3.0 и позже.
-
headingFilterСвойствоМинимальное угловое изменение (измеренный в градусах) требуемый генерировать новые события заголовка.
Объявление
Swift
var headingFilter: CLLocationDegreesObjective C
@property(assign, nonatomic) CLLocationDegrees headingFilterОбсуждение
Угловое расстояние измеряется относительно последнего поставленного возглавляющего события. Используйте значение
kCLHeadingFilterNoneбыть уведомленным относительно всех перемещений. Значение по умолчанию этого свойства1градус.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 3.0 и позже.
-
headingOrientationСвойствоОриентация устройства для использования при вычислениях возглавляющих значений.
Объявление
Swift
var headingOrientation: CLDeviceOrientationObjective C
@property(assign, nonatomic) CLDeviceOrientation headingOrientationОбсуждение
При вычислениях возглавляющих значений менеджер расположения предполагает, что вершина устройства в режиме портрета представляет должный север (0 градусов) по умолчанию. Для приложений, работающих в других ориентациях, это может не всегда быть самой удобной ориентацией. Это свойство позволяет Вам указывать, какую ориентацию устройства Вы хотите, чтобы менеджер расположения использовал в качестве контрольной точки для должного севера.
Несмотря на то, что можно установить значение этого свойства к
CLDeviceOrientationUnknown,CLDeviceOrientationFaceUp, илиCLDeviceOrientationFaceDown, выполнение так не имеет никакого эффекта на контрольную точку ориентации. Точка исходной ссылки сохраняется вместо этого.Изменение значения в этом свойстве влияет, только те, которые возглавляют значения, сообщили после того, как внесено изменение.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.0 и позже.
-
Начинает контролировать указанную область.
Объявление
Swift
func startMonitoringForRegion(_region: CLRegion!)Objective C
- (void)startMonitoringForRegion:(CLRegion *)regionПараметры
regionОбъект области, определяющий границу для контроля. Этот параметр не должен быть
nil.Обсуждение
Необходимо вызвать этот метод один раз для каждой области, которую Вы хотите контролировать. Если существующая область с тем же идентификатором уже контролируется приложением, старая область заменяется новой. Области Вы добавляете использование этого метода, совместно используются всем менеджером расположения объекты в Вашем приложении и сохранены в
monitoredRegionsсвойство.События области поставлены
locationManager:didEnterRegion:иlocationManager:didExitRegion:методы Вашего делегата. Если существует ошибка, вызовы диспетчера расположенияlocationManager:monitoringDidFailForRegion:withError:метод Вашего делегата вместо этого.Приложение может зарегистрировать до 20 областей за один раз. Чтобы сообщить, что область изменяется своевременно, контрольная служба области требует сетевого соединения.
В iOS 6, областях с радиусом между 1-и 400-метровой работой лучше над iPhone 4S или более поздними устройствами. (В iOS 5, областях с радиусом между 1-и 150-метровой работой лучше над iPhone 4S и более поздними устройствами.) На этих устройствах приложение может ожидать получать надлежащую вводимую область, или область вышла из уведомления в течение 3 - 5 минут в среднем, если не раньше.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 5.0 и позже.
См. также
-
Остановки, контролирующие указанную область.
Объявление
Swift
func stopMonitoringForRegion(_region: CLRegion!)Objective C
- (void)stopMonitoringForRegion:(CLRegion *)regionПараметры
regionОбъект области, в настоящее время контролируемый. Этот параметр не должен быть
nil.Обсуждение
Если указанный объект области в настоящее время не контролируется, этот метод не имеет никакого эффекта.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.0 и позже.
См. также
-
monitoredRegionsСвойствоНабор совместно используемых областей, контролируемых всем менеджером расположения объекты. (только для чтения)
Объявление
Swift
var monitoredRegions: Set<NSObject>! { get }Objective C
@property(readonly, nonatomic, copy) NSSet *monitoredRegionsОбсуждение
Вы не можете добавить области к этому свойству непосредственно. Вместо этого необходимо зарегистрировать области путем вызова
startMonitoringForRegion:метод. Области в этом свойстве совместно используются всеми экземплярамиCLLocationManagerкласс в Вашем приложении.Объекты в этом наборе могут не обязательно быть теми же объектами, которые Вы указали в регистрационное время. Только сами данные области сохраняются системой. Поэтому единственный способ однозначно определить зарегистрированную область использует
identifierсвойство.Менеджер расположения сохраняет данные области между запусками Вашего приложения. Если Ваше приложение завершается и затем повторно запускается, содержание этого свойства повторно заполняется с объектами области, содержащими ранее зарегистрированные данные.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.0 и позже.
-
maximumRegionMonitoringDistanceСвойствоСамое большое граничное расстояние, которое может быть присвоено области. (только для чтения)
Объявление
Swift
var maximumRegionMonitoringDistance: CLLocationDistance { get }Objective C
@property(readonly, nonatomic) CLLocationDistance maximumRegionMonitoringDistanceОбсуждение
Это свойство определяет самое большое граничное расстояние, позволенное от центральной точки области. Попытка контролировать область с расстоянием, больше, чем это значение, заставляет менеджера расположения отправлять a
kCLErrorRegionMonitoringFailureошибка делегату.Если контроль области недоступен или не поддерживаемый, значение в этом свойстве
-1.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.0 и позже.
-
Запускает поставку уведомлений для маркеров в указанной области.
Объявление
Swift
func startRangingBeaconsInRegion(_region: CLBeaconRegion!)Objective C
- (void)startRangingBeaconsInRegion:(CLBeaconRegion *)regionПараметры
regionОбъект области, определяющий информацию об идентификации для предназначенных маркеров. Число маркеров, представленных этим объектом области, зависит, на котором идентификатор оценивает Вас использование для инициализации его. Маркеры должны соответствовать все идентификаторы, которые Вы указываете. Этот метод копирует информацию об области, в которой он нуждается от объекта, который Вы обеспечиваете.
Обсуждение
После того, как зарегистрированный, менеджер расположения сообщает о любых маркерах, с которыми встречаются, его делегату путем вызова
locationManager:didRangeBeacons:inRegion:метод. Если существует ошибка при регистрации указанной области маркера, вызовы диспетчера расположения его делегатlocationManager:rangingBeaconsDidFailForRegion:withError:метод и предоставляет надлежащую ошибочную информацию.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 7.0 и позже.
-
Останавливает поставку уведомлений для указанной области маркера.
Объявление
Swift
func stopRangingBeaconsInRegion(_region: CLBeaconRegion!)Objective C
- (void)stopRangingBeaconsInRegion:(CLBeaconRegion *)regionПараметры
regionОбласть, идентифицирующая маркеры. Объект, который Вы указываете, не должен быть тем же самым объектом, который Вы зарегистрировали, но атрибуты маркера должны быть тем же.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 7.0 и позже.
-
Получает состояние области асинхронно.
Объявление
Swift
func requestStateForRegion(_region: CLRegion!)Objective C
- (void)requestStateForRegion:(CLRegion *)regionПараметры
regionОбласть, состояние которой Вы хотите знать. Этот объект должен быть экземпляром одного из стандартных подклассов области, предоставленных Набором Карты. Вы не можете использовать этот метод для определения состояния пользовательских областей, которые Вы определяете сами.
Обсуждение
Этот метод выполняет запрос асинхронно и поставляет результаты делегату менеджера расположения. Необходимо реализовать
locationManager:didDetermineState:forRegion:метод в делегате для получения результатов.Если
regionпараметр содержит неизвестный тип объекта области, этот метод ничего не делает.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 7.0 и позже.
-
rangedRegionsСвойствоНабор областей, в настоящее время прослеживаемых, используя расположение. (только для чтения)
Объявление
Swift
var rangedRegions: Set<NSObject>! { get }Objective C
@property(readonly, nonatomic, copy) NSSet *rangedRegionsОбсуждение
Объекты в наборе являются экземплярами
CLBeaconRegionкласс.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 7.0 и позже.
См. также
-
Запускает генерацию связанных с посещением событий.
Объявление
Swift
func startMonitoringVisits()Objective C
- (void)startMonitoringVisitsОбсуждение
Вызов этого метода начинает поставку связанных с посещением событий к Вашему приложению. Включение событий посещения для одного менеджера расположения включает события посещения для всего другого менеджера расположения объекты в Вашем приложении. Когда новое событие посещения поступает, менеджер расположения, объект поставляет событие
locationManager:didVisit:метод его делегата.Если Ваше приложение завершается, в то время как эта служба активна, система повторно запускает Ваше приложение, когда новые события посещения готовы быть поставленными. На перезапуск воссоздайте своего менеджера расположения, возражают и присваивают делегата, чтобы начать получать события посещения. Вы не должны вызывать этот метод снова для перезапуска поставки событий посещения, но вызов его не причиняет вреда.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 8.0 и позже.
См. также
-
Останавливает поставку связанных с посещением событий.
Объявление
Swift
func stopMonitoringVisits()Objective C
- (void)stopMonitoringVisitsОбсуждение
Вызов этого метода отключает поставку связанных с посещением событий для Вашего приложения.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 8.0 и позже.
См. также
-
allowDeferredLocationUpdatesUntilTraveled (_: тайм-аут:) - allowDeferredLocationUpdatesUntilTraveled:timeout:Просит менеджер расположения задерживать поставку обновлений информации о местоположении, пока не удовлетворены указанные критерии.
Объявление
Swift
func allowDeferredLocationUpdatesUntilTraveled(_distance: CLLocationDistance, timeouttimeout: NSTimeInterval)Objective C
- (void)allowDeferredLocationUpdatesUntilTraveled:(CLLocationDistance)distancetimeout:(NSTimeInterval)timeoutПараметры
distanceРасстояние (в метрах) от текущего расположения, которое должно быть перемещено перед резюме поставки события. Для указания неограниченного расстояния передайте
CLLocationDistanceMaxпостоянный.timeoutКоличество времени (в секундах) с текущего времени, которое должно передать перед резюме поставки события. Для указания неограниченного количества времени передайте
CLTimeIntervalMaxпостоянный.Обсуждение
Вызовите этот метод в ситуациях, где Вы хотите данные расположения с точностью GPS, но не должны обрабатывать те данные сразу же. Если Ваше приложение в фоновом режиме, и система в состоянии оптимизировать свое использование питания, менеджер расположения говорит аппаратным средствам GPS хранить новые расположения внутренне до указанного расстояния, или условиям тайм-аута удовлетворяют. Когда один или оба критерия удовлетворены, менеджер расположения концы задержанные расположения путем вызова
locationManager:didFinishDeferredUpdatesWithError:метод его делегата и поставляет кэшируемые расположенияlocationManager:didUpdateLocations:метод. Если Ваше приложение находится на переднем плане, менеджер расположения не задерживает поставление событий, но действительно контролирует для указанных критериев. Если Ваше приложение перемещается в фон, прежде чем критерии будут удовлетворены, менеджер расположения может начать задерживать поставку событий.Запустите поставку обновлений информации о местоположении прежде, чем вызвать этот метод. Наиболее распространенное место для вызова этого метода находится в делегате
locationManager:didUpdateLocations:метод. После обработки любых новых расположений вызовите этот метод, если Вы хотите задержать будущие обновления до расстояния, или критерии времени удовлетворены. Если новые события поступают, и Ваше приложение в фоновом режиме, события кэшируются, и их поставка задерживается соответственно.Ваш делегат
locationManager:didFinishDeferredUpdatesWithError:метод вызывают точно один раз в течение каждого раза, когда Вы вызываете этот метод. Если Вы вызываете этот метод дважды по очереди, менеджер расположения отменяет предыдущую отсрочку прежде, чем запустить новую. Поэтому необходимо отслеживать то, задерживаются ли обновления в настоящее время и избегают вызывать этот метод многократно по очереди. Если Вы хотите изменить критерии отсрочки по какой-либо причине, и поэтому вызвать этот метод снова, подготовлены получить akCLErrorDeferredCanceledошибка в Вашем делегатеlocationManager:didFinishDeferredUpdatesWithError:метод.Даже если указанное расстояние и критерии тайм-аута не встречены, после вызова этого метода менеджер расположения может поставить обновления информации о местоположении. Например, если кэши раньше хранили задержанные выборки, становятся полными, менеджер расположения может поставить кэшируемые выборки, таким образом, это может собрать новые. Поставка выборок автоматически не заканчивает задержанный режим для Вашего приложения. Менеджер расположения возобновляет задержанный режим, когда он в состоянии сделать так.
Задержанные обновления поставлены только, когда система вводит состояние низкой мощности. Задержанные обновления не происходят во время отладки, потому что XCode препятствует тому, чтобы Ваше приложение спало и таким образом препятствует тому, чтобы система ввела то состояние низкой мощности.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 6.0 и позже.
См. также
-
Отменяет отсрочку обновлений информации о местоположении для этого приложения.
Объявление
Swift
func disallowDeferredLocationUpdates()Objective C
- (void)disallowDeferredLocationUpdatesОбсуждение
Вызовите этот метод при предыдущей задержке поставки события расположения с помощью
allowDeferredLocationUpdatesUntilTraveled:timeout:метод и теперь хочет возобновить поставку событий в нормальных интервалах.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 6.0 и позже.
-
locationСвойствоПоследний раз полученное пользовательское расположение. (только для чтения)
Объявление
Swift
@NSCopying var location: CLLocation! { get }Objective C
@property(readonly, nonatomic, copy) CLLocation *locationОбсуждение
Значение этого свойства
nilесли никогда не получались никакие данные расположения.В iOS 4.0 и позже, это свойство может содержать более свежий объект расположения во время запуска. В частности, если значительные обновления информации о местоположении работают, и Ваше приложение завершается, это свойство обновляется с новыми данными расположения, когда Ваше приложение повторно запускается (и Вы создаете нового менеджера расположения объект). Эти данные расположения могут быть более свежими, чем последнее событие расположения, обработанное Вашим приложением.
Это всегда - хорошая идея проверить метку времени расположения, сохраненного в этом свойстве. Если получатель в настоящее время собирает данные расположения, но минимальный фильтр расстояния является большим, возвращенное расположение могло бы быть относительно старым. Если это, можно остановить получатель и запустить его снова для принуждения обновления.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 2.0 и позже.
См. также
-
headingСвойствоЗаголовок, о котором последний раз сообщают. (только для чтения)
Объявление
Swift
@NSCopying var heading: CLHeading! { get }Objective C
@property(readonly, nonatomic, copy) CLHeading *headingОбсуждение
Значение этого свойства
nilесли никогда не инициировался заголовок обновлений.Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.0 и позже.
-
Булево значение, указывающее, включены ли службы определения местоположения на устройстве. (только для чтения)
Оператор осуждения
Используйте
locationServicesEnabledметод класса вместо этого.Объявление
Objective C
@property(readonly, nonatomic) BOOL locationServicesEnabledОбсуждение
В iOS пользователь может включить или отключить службы определения местоположения с помощью средств управления в Настройках> Службы определения местоположения. В OS X пользователь может включить или отключить службы определения местоположения от системного предпочтения Безопасности и Конфиденциальности.
Необходимо проверить это свойство прежде, чем запустить обновления информации о местоположении, чтобы определить, включили ли пользователю службы определения местоположения для текущего устройства. Если это свойство содержит значение
NOfalseи Вы запускаете обновления информации о местоположении так или иначе, Базовая платформа Расположения предлагает пользователю с предупреждением подтверждения выяснение, должны ли быть повторно включены службы определения местоположения.Специальные замечания
В iOS это свойство объявляется как
nonatomic. В OS X это объявляется какatomic.Оператор импорта
Objective C
@import CoreLocation;Доступность
Доступный в iOS 2.0 и позже.
Осуждаемый в iOS 4.0.
См. также
-
Булево значение, указывающее, в состоянии ли менеджер расположения генерировать связанные с заголовком события. (только для чтения)
Оператор осуждения
Используйте
headingAvailableметод класса вместо этого.Объявление
Objective C
@property(readonly, nonatomic) BOOL headingAvailableОбсуждение
Заголовок данных может не быть доступным на всех основанных на iOS устройствах. Необходимо проверить значение этого свойства прежде, чем попросить, чтобы менеджер расположения поставил связанные с заголовком события.
Оператор импорта
Objective C
@import CoreLocation;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 4.0.
См. также
-
+ regionMonitoringAvailable(iOS 7.0)Возвращает булево значение, указывающее, поддерживается ли контроль области на текущем устройстве.
Оператор осуждения
Использовать
isMonitoringAvailableForClass:вместо этого.Объявление
Objective C
+ (BOOL)regionMonitoringAvailableВозвращаемое значение
YEStrueесли контроль области доступен;NOfalseесли это не.Обсуждение
Поддержка контроля области может не быть доступной на всех устройствах и моделях. Необходимо проверить значение этого свойства прежде, чем попытаться установить любые области или инициировать контроль области.
Даже если контрольная поддержка области присутствует на устройстве, это может все еще быть недоступно, потому что пользователь отключил его для текущего приложения или для всех приложений.
Специальные замечания
Этот класс осуждается в iOS 7 и позже но все еще поддерживается в OS X.
Оператор импорта
Objective C
@import CoreLocation;Доступность
Доступный в iOS 4.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
+ regionMonitoringEnabled(iOS 6.0)Возвращает булево значение, указывающее, включается ли в настоящее время контроль области.
Оператор осуждения
Использовать
isMonitoringAvailableForClass:иauthorizationStatusвместо этого.Объявление
Objective C
+ (BOOL)regionMonitoringEnabledВозвращаемое значение
YEStrueесли контроль области доступен и в настоящее время включается;NOfalseесли это недоступно или не включенное.Обсуждение
В iOS пользователь может включить или отключить службы определения местоположения (включая контроль области) использование средств управления в Настройках> Службы определения местоположения.
Необходимо проверить возвращаемое значение этого метода перед стартовыми контрольными обновлениями области, чтобы определить, позволяет ли пользователь в настоящее время службам определения местоположения использоваться вообще. Если возвращается этот метод
NOfalseи Вы запускаете контрольные обновления области так или иначе, Базовая платформа Расположения предлагает пользователю подтверждать выяснение, должны ли быть повторно включены службы определения местоположения.Этот метод не проверяет, чтобы видеть, поддерживаются ли контрольные возможности области фактически устройством. Поэтому необходимо также проверить возвращаемое значение
regionMonitoringAvailableметод класса прежде, чем попытаться запустить контрольные службы области.Оператор импорта
Objective C
@import CoreLocation;Доступность
Доступный в iOS 4.0 и позже.
Осуждаемый в iOS 6.0.
См. также
-
Начинает контролировать указанную область для граничных пересечений.
Оператор осуждения
Использовать
startMonitoringForRegion:вместо этого.Объявление
Objective C
- (void)startMonitoringForRegion:(CLRegion *)regiondesiredAccuracy:(CLLocationAccuracy)accuracyПараметры
regionОбъект области, определяющий границу для контроля. Этот параметр не должен быть
nil.accuracyРасстояние мимо границы (измеренный в метрах), в котором можно генерировать уведомления. Когда пользователь близко к краю границы, можно использовать это значение для предотвращения поставки многократных уведомлений.
Обсуждение
Необходимо вызвать этот метод отдельно для каждой области, которую Вы хотите контролировать. Если существующая область с тем же идентификатором уже контролируется приложением, старая область заменяется новой. Области Вы добавляете использование этого метода, совместно используются всем менеджером расположения объекты в Вашем приложении и сохранены в
monitoredRegionsсвойство.Если Вы начинаете контролировать область, и Ваше приложение впоследствии завершается, система автоматически повторно запускает его в фон, если пересечена граница области. В таком случае словарь опций передал
application:didFinishLaunchingWithOptions:метод Вашего делегата приложения содержит ключUIApplicationLaunchOptionsLocationKeyуказать, что Ваше приложение было запущено из-за связанного с расположением события. Кроме того, создание нового менеджера расположения и присвоение делегата приводят к поставке соответствующих сообщений области. Недавно создаваемый менеджер расположенияlocationдаже если службы определения местоположения не включены, свойство также содержит текущее расположение.События области поставлены
locationManager:didEnterRegion:иlocationManager:didExitRegion:методы Вашего делегата. Если существует ошибка, вызовы диспетчера расположенияlocationManager:monitoringDidFailForRegion:withError:метод Вашего делегата вместо этого.Оператор импорта
Objective C
@import CoreLocation;Доступность
Доступный в iOS 4.0 и позже.
Осуждаемый в iOS 6.0.
-
Предоставленная приложением строка, описывающая причину использования служб определения местоположения.
Оператор осуждения
Установите строку цели с помощью
NSLocationAlwaysUsageDescriptionилиNSLocationWhenInUseUsageDescriptionвведите приложениеInfo.plistвместо этого.Объявление
Objective C
@property(copy, nonatomic) NSString *purposeОбсуждение
Если это свойство не
nilи система должна попросить согласие пользователя использовать службы определения местоположения, это выводит на экран предоставленную строку. Можно использовать эту строку для объяснения, почему приложение использует службы определения местоположения.Необходимо установить значение этого свойства до запуска любых служб определения местоположения. Поскольку строка в конечном счете выведена на экран пользователю, необходимо всегда загружать ее из файла локализованных строк.
Оператор импорта
Objective C
@import CoreLocation;Доступность
Доступный в iOS 3.2 и позже.
Осуждаемый в iOS 6.0.
-
Эти константы указывают, разрешено ли приложение использовать службы определения местоположения.
Объявление
Swift
enum CLAuthorizationStatus : Int32 { case NotDetermined case Restricted case Denied case AuthorizedAlways case AuthorizedWhenInUse }Objective C
typedef enum { kCLAuthorizationStatusNotDetermined = 0, kCLAuthorizationStatusRestricted, kCLAuthorizationStatusDenied, kCLAuthorizationStatusAuthorized, kCLAuthorizationStatusAuthorizedAlways = kCLAuthorizationStatusAuthorized, kCLAuthorizationStatusAuthorizedWhenInUse } CLAuthorizationStatus;Константы
-
NotDeterminedkCLAuthorizationStatusNotDeterminedПользователь еще не сделал выбор относительно того, может ли это приложение использовать службы определения местоположения.
Доступный в iOS 4.2 и позже.
-
RestrictedkCLAuthorizationStatusRestrictedЭто приложение не разрешено использовать службы определения местоположения. Пользователь не может изменить состояние этого приложения, возможно вследствие активных ограничений, таких как существующий родительский контроль.
Доступный в iOS 4.2 и позже.
-
DeniedkCLAuthorizationStatusDeniedПользователь явно отклонил использование служб определения местоположения для этого приложения, или службы определения местоположения в настоящее время отключаются в Настройках.
Доступный в iOS 4.2 и позже.
-
kCLAuthorizationStatusAuthorizedЭто приложение разрешено использовать службы определения местоположения.
Доступный в iOS 2.0 и позже.
Осуждаемый в iOS 8.0.
-
AuthorizedAlwayskCLAuthorizationStatusAuthorizedAlwaysЭто приложение разрешено запустить службы определения местоположения в любое время. Эта авторизация позволяет Вам использовать все службы определения местоположения, включая тех для контроля областей и значительных изменений расположения.
Доступный в iOS 8.0 и позже.
-
AuthorizedWhenInUsekCLAuthorizationStatusAuthorizedWhenInUseЭто приложение разрешено запустить большинство служб определения местоположения при выполнении на переднем плане. Эта авторизация не позволяет Вам использовать APIs, который мог запустить Ваше приложение в ответ на событие, такое как контроль области и значительные службы изменения расположения.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 4.2 и позже.
-
-
Константы для указания максимальных значений во время задержанных обновлений.
Объявление
Swift
let CLLocationDistanceMax: CLLocationDistance let CLTimeIntervalMax: NSTimeIntervalObjective C
extern const CLLocationDistance CLLocationDistanceMax; extern const NSTimeInterval CLTimeIntervalMax;Константы
-
Эти константы указывают тип действия, связанного с обновлениями информации о местоположении.
Объявление
Swift
enum CLActivityType : Int { case Other case AutomotiveNavigation case Fitness case OtherNavigation }Objective C
enum { CLActivityTypeOther = 1, CLActivityTypeAutomotiveNavigation, CLActivityTypeFitness, CLActivityTypeOtherNavigation, }; typedef NSInteger CLActivityType;Константы
-
OtherCLActivityTypeOtherМенеджер расположения используется для неизвестного действия.
Доступный в iOS 6.0 и позже.
-
AutomotiveNavigationCLActivityTypeAutomotiveNavigationМенеджер расположения используется в частности во время автомобильной навигации для отслеживания изменений расположения в автомобиле. Это действие могло бы заставить обновления информации о местоположении быть приостановленными только, когда механизм не перемещается в течение длительного периода времени.
Доступный в iOS 6.0 и позже.
-
FitnessCLActivityTypeFitnessМенеджер расположения используется для отслеживания любого связанного с пешеходом действия. Это действие могло бы заставить обновления информации о местоположении быть приостановленными только, когда пользователь не перемещает значительное расстояние в течение времени.
Доступный в iOS 6.0 и позже.
-
OtherNavigationCLActivityTypeOtherNavigationМенеджер расположения используется для отслеживания перемещений за другие типы автомобильной навигации, которые не являются связанным автомобилем. Например, Вы использовали бы это для отслеживания навигации судном, поездом или плоскостью. Не используйте этот тип для пешеходного отслеживания навигации. Это действие могло бы заставить обновления информации о местоположении быть приостановленными только, когда механизм не перемещает значительное расстояние в течение времени.
Доступный в iOS 6.0 и позже.
Оператор импорта
Objective C
@import CoreLocation;Swift
import CoreLocationДоступность
Доступный в iOS 6.0 и позже.
-
