Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы CoreLocation ссылка класса CLLocationManager

Опции
Развертывание Target:

На этой странице
Язык:

CLLocationManager

Наследование


Соответствует


Оператор импорта


Swift

import CoreLocation

Objective C

@import CoreLocation;

Доступность


Доступный в iOS 2.0 и позже.

CLLocationManager класс является центральной точкой для конфигурирования поставки расположения - и связанные с заголовком события к Вашему приложению. Вы используете экземпляр этого класса для установления параметров, определяющих, когда расположение и возглавляющие события должны быть поставлены и запустить и остановить фактическую поставку тех событий. Можно также использовать менеджера расположения объект получить новое расположение и возглавляющие данные.

Менеджер расположения объект предоставляет поддержку для следующих связанных с расположением действий:

  • Отслеживание больших или маленьких изменений в текущем расположении пользователя с конфигурируемой степенью точности.

  • Создание отчетов о возглавляющих изменениях от встроенного компаса. (только iOS)

  • Контроль отличных областей интереса и генерация событий расположения, когда пользователь вводит или оставляет те области.

  • Задержка поставки обновлений информации о местоположении, в то время как приложение в фоновом режиме. (iOS 6 и позже только)

  • Создание отчетов о диапазоне к соседним маркерам.

Сконфигурировать и использовать a CLLocationManager объект поставить события:

  1. Всегда запрашивайте авторизацию использовать службы определения местоположения и проверку, чтобы видеть, доступны ли желаемые службы, как описано в Выяснении у Разрешения Использовать Службы определения местоположения.

  2. Создайте экземпляр CLLocationManager класс и хранилище сильная ссылка к нему где-нибудь в Вашем приложении.

    При хранении сильной ссылки менеджеру расположения, объект требуется, пока все задачи, включающие тот объект, не завершены. Поскольку большая часть менеджера расположения, которого задачи выполняют асинхронно, храня Вашего менеджера расположения в локальной переменной, недостаточна.

  3. Присвойте пользовательский объект delegate свойство. Этот объект должен соответствовать CLLocationManagerDelegate протокол.

  4. Сконфигурируйте любые дополнительные свойства, относящиеся к желаемой службе.

  5. Вызовите надлежащий метод запуска для начала поставки событий.

Все расположение - и связанные с заголовком обновления поставлено связанному объекту делегата, который является пользовательским объектом, который Вы обеспечиваете. Для получения информации о методах делегата Вы используете, чтобы получить события, видеть Ссылку на протокол CLLocationManagerDelegate.

Запрос разрешения использовать службы определения местоположения

Использование служб определения местоположения требует авторизации пользователя. Кроме того, некоторые службы определения местоположения требуют присутствия определенных аппаратных средств на данном устройстве. Например, заголовок информации доступен только на устройствах, содержащих аппаратный компас. До использования служб определения местоположения Ваше приложение должно запросить авторизацию от пользователя использовать те службы, и это должно проверить наличие целевых служб. Типичная последовательность для использования служб определения местоположения следующие:

  1. Вызовите authorizationStatus метод класса получить текущее состояние авторизации для Вашего приложения.

    Если состояние авторизации kCLAuthorizationStatusRestricted или kCLAuthorizationStatusDenied, Вашему приложению не разрешают использовать службы определения местоположения, и необходимо прервать попытку использовать их.

  2. Создайте Ваш CLLocationManager возразите и присвойте делегата в нем.

  3. Сохраните сильную ссылку своему менеджеру расположения где-нибудь в Вашем приложении.

  4. В iOS, если состояние авторизации было kCLAuthorizationStatusNotDetermined, вызовите requestWhenInUseAuthorization или requestAlwaysAuthorization метод для запроса надлежащего типа авторизации от пользователя.

  5. В зависимости от служб Вы нуждаетесь, вызываете один или больше следующих методов:

    • При использовании стандартной службы определения местоположения вызовите 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() -> CLAuthorizationStatus

    Objective C

    + (CLAuthorizationStatus)authorizationStatus

    Возвращаемое значение

    Значение, указывающее, разрешено ли приложение использовать службы определения местоположения.

    Обсуждение

    Состоянием авторизации данного приложения управляет система и определяют несколько факторов. Приложения должны быть явно разрешены использовать службы определения местоположения пользователем, и службы определения местоположения должны самостоятельно в настоящее время включаться для системы. Когда Ваше приложение сначала пытается использовать службы определения местоположения, запрос на авторизацию пользователя выведен на экран автоматически.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 4.2 и позже.

  • Возвращает булево значение, указывающее, включены ли службы определения местоположения на устройстве.

    Объявление

    Swift

    class func locationServicesEnabled() -> Bool

    Objective C

    + (BOOL)locationServicesEnabled

    Возвращаемое значение

    YEStrue если включены службы определения местоположения; NOfalse если они не.

    Обсуждение

    Пользователь может включить или отключить службы определения местоположения из приложения Настроек путем переключения переключателя Location Services в целом.

    Необходимо проверить возвращаемое значение этого метода прежде, чем запустить обновления информации о местоположении, чтобы определить, включили ли пользователю службы определения местоположения для текущего устройства. Службы определения местоположения предлагают пользователям в первый раз, когда они пытаются использовать связанную с расположением информацию в приложении, но не запрашивает последующие попытки. Если пользователь отклоняет использование служб определения местоположения, и Вы пытаетесь запустить обновления информации о местоположении так или иначе, менеджер расположения сообщает об ошибке ее делегату.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает булево значение, указывающее, поддерживает ли устройство задержанные обновления информации о местоположении.

    Объявление

    Swift

    class func deferredLocationUpdatesAvailable() -> Bool

    Objective C

    + (BOOL)deferredLocationUpdatesAvailable

    Возвращаемое значение

    YEStrue если устройство поддерживает задержанные обновления информации о местоположении или NOfalse если это не делает.

    Обсуждение

    Задержанные обновления информации о местоположении являются способом для менеджера расположения часто избегать будить фоновое приложение для поставки изменений расположения. Обычно, когда приложение хочет обновления информации о местоположении в фоновом режиме, приложение должно быть разбужено каждый раз, когда поступает новое событие. Пробуждение приложения использует питание, которое в некоторых ситуациях могло бы быть потрачено впустую, если приложение ничего не может сделать с информацией о расположении кроме журнала это и возвратиться для сна так или иначе. Когда Ваше приложение может сделать что-то полезное с данными и затем обработать обновления одновременно, задержка обновлений информации о местоположении предоставляет Вам возможность ожидать до времени.

    Задержанные обновления информации о местоположении требуют присутствия аппаратных средств GPS и не могут поддерживаться на всех устройствах на iOS.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 6.0 и позже.

  • Возвращает булево значение, указывающее, доступно ли значительное отслеживание изменений расположения.

    Объявление

    Swift

    class func significantLocationChangeMonitoringAvailable() -> Bool

    Objective C

    + (BOOL)significantLocationChangeMonitoringAvailable

    Возвращаемое значение

    YEStrue если контроль изменения расположения доступен; NOfalse если это не.

    Обсуждение

    Этот метод указывает, в состоянии ли устройство сообщить, что обновления на основе значительного расположения изменяются только. Эта возможность обеспечивает огромную экономию электроэнергии для приложений, которые хотят отследить приблизительное расположение пользователя и не нужны в очень точной информации о положении.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает булево значение, указывающее, в состоянии ли менеджер расположения генерировать связанные с заголовком события.

    Объявление

    Swift

    class func headingAvailable() -> Bool

    Objective C

    + (BOOL)headingAvailable

    Возвращаемое значение

    YEStrue если заголовок данных доступен; NOfalse если это не.

    Обсуждение

    Заголовок данных может не быть доступным на всех основанных на iOS устройствах. Необходимо проверить значение, возвращенное этим методом прежде, чем попросить, чтобы менеджер расположения поставил связанные с заголовком события.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает булевскую переменную, указывающую, поддерживает ли устройство контроль области с помощью указанного класса.

    Объявление

    Swift

    class func isMonitoringAvailableForClass(_ regionClass: AnyClass!) -> Bool

    Objective C

    + (BOOL)isMonitoringAvailableForClass:(Class)regionClass

    Параметры

    regionClass

    Контрольный класс области от платформы Набора Карты. Этот класс должен быть убыванием от CLRegion класс.

    Возвращаемое значение

    YEStrue если устройство способно к контролирующим областям с помощью указанного класса или NOfalse если это не.

    Обсуждение

    Доступность контрольной поддержки области зависит от аппаратного настоящего на устройстве. Этот метод не принимает во внимание доступность служб определения местоположения или факта, что пользователь, возможно, отключил их для приложения или системы; необходимо определить состояние авторизации приложения отдельно.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 7.0 и позже.

    См. также

    + authorizationStatus

  • Возвращает булевскую переменную, указывающую ли расположение поддержек устройства маркеров Bluetooth.

    Объявление

    Swift

    class func isRangingAvailable() -> Bool

    Objective 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 и позже.

    См. также

    – startUpdatingLocation

  • Булево значение, указывающее, может ли менеджер расположения объект приостановить обновления информации о местоположении.

    Объявление

    Swift

    var pausesLocationUpdatesAutomatically: Bool

    Objective C

    @property(assign, nonatomic) BOOL pausesLocationUpdatesAutomatically

    Обсуждение

    Разрешение менеджеру расположения приостановить обновления может улучшить время работы от батареи относительно целевого устройства, не жертвуя данными расположения. Когда это свойство установлено в YEStrue, обновления пауз менеджера расположения (и выключает надлежащие аппаратные средства), время от времени, когда вряд ли изменятся данные расположения. Например, если пользователь останавливается для еды при использовании приложения навигации, менеджер расположения мог бы приостановить обновления сроком на время. Можно помочь определению того, когда приостановить обновления информации о местоположении путем присвоения значения activityType свойство.

    Значение по умолчанию этого свойства YEStrue.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 6.0 и позже.

    См. также

    activityType

  • distanceFilter Свойство

    Минимальное расстояние (измеренный в метрах) устройство должно переместиться горизонтально, прежде чем событие обновления сгенерировано.

    Объявление

    Swift

    var distanceFilter: CLLocationDistance

    Objective 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: CLLocationAccuracy

    Objective 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: CLActivityType

    Objective 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 и позже.

    См. также

    – startUpdatingHeading

  • Отклоняет возглавляющее калибровочное представление от экрана сразу.

    Объявление

    Swift

    func dismissHeadingCalibrationDisplay()

    Objective C

    - (void)dismissHeadingCalibrationDisplay

    Обсуждение

    Базовое Расположение использует возглавляющее калибровочное предупреждение для калибровки доступных аппаратных средств заголовка по мере необходимости. Дисплей этого представления является автоматическим, принимая Ваши поддержки делегата, выводящие на экран представление вообще. Если представление выведено на экран, можно использовать этот метод для отклонения его после надлежащего количества времени, чтобы гарантировать, что весьма надлежащим образом разрушен пользовательский интерфейс приложения.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 3.0 и позже.

  • headingFilter Свойство

    Минимальное угловое изменение (измеренный в градусах) требуемый генерировать новые события заголовка.

    Объявление

    Swift

    var headingFilter: CLLocationDegrees

    Objective C

    @property(assign, nonatomic) CLLocationDegrees headingFilter

    Обсуждение

    Угловое расстояние измеряется относительно последнего поставленного возглавляющего события. Используйте значение kCLHeadingFilterNone быть уведомленным относительно всех перемещений. Значение по умолчанию этого свойства 1 градус.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 3.0 и позже.

  • headingOrientation Свойство

    Ориентация устройства для использования при вычислениях возглавляющих значений.

    Объявление

    Swift

    var headingOrientation: CLDeviceOrientation

    Objective 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 и позже.

  • Самое большое граничное расстояние, которое может быть присвоено области. (только для чтения)

    Объявление

    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 и позже.

    См. также

    – stopMonitoringVisits

  • Останавливает поставку связанных с посещением событий.

    Объявление

    Swift

    func stopMonitoringVisits()

    Objective C

    - (void)stopMonitoringVisits

    Обсуждение

    Вызов этого метода отключает поставку связанных с посещением событий для Вашего приложения.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 8.0 и позже.

    См. также

    – startMonitoringVisits

  • Просит менеджер расположения задерживать поставку обновлений информации о местоположении, пока не удовлетворены указанные критерии.

    Объявление

    Swift

    func allowDeferredLocationUpdatesUntilTraveled(_ distance: CLLocationDistance, timeout timeout: NSTimeInterval)

    Objective C

    - (void)allowDeferredLocationUpdatesUntilTraveled:(CLLocationDistance)distance timeout:(NSTimeInterval)timeout

    Параметры

    distance

    Расстояние (в метрах) от текущего расположения, которое должно быть перемещено перед резюме поставки события. Для указания неограниченного расстояния передайте CLLocationDistanceMax постоянный.

    timeout

    Количество времени (в секундах) с текущего времени, которое должно передать перед резюме поставки события. Для указания неограниченного количества времени передайте CLTimeIntervalMax постоянный.

    Обсуждение

    Вызовите этот метод в ситуациях, где Вы хотите данные расположения с точностью GPS, но не должны обрабатывать те данные сразу же. Если Ваше приложение в фоновом режиме, и система в состоянии оптимизировать свое использование питания, менеджер расположения говорит аппаратным средствам GPS хранить новые расположения внутренне до указанного расстояния, или условиям тайм-аута удовлетворяют. Когда один или оба критерия удовлетворены, менеджер расположения концы задержанные расположения путем вызова locationManager:didFinishDeferredUpdatesWithError: метод его делегата и поставляет кэшируемые расположения locationManager:didUpdateLocations: метод. Если Ваше приложение находится на переднем плане, менеджер расположения не задерживает поставление событий, но действительно контролирует для указанных критериев. Если Ваше приложение перемещается в фон, прежде чем критерии будут удовлетворены, менеджер расположения может начать задерживать поставку событий.

    Запустите поставку обновлений информации о местоположении прежде, чем вызвать этот метод. Наиболее распространенное место для вызова этого метода находится в делегате locationManager:didUpdateLocations: метод. После обработки любых новых расположений вызовите этот метод, если Вы хотите задержать будущие обновления до расстояния, или критерии времени удовлетворены. Если новые события поступают, и Ваше приложение в фоновом режиме, события кэшируются, и их поставка задерживается соответственно.

    Ваш делегат locationManager:didFinishDeferredUpdatesWithError: метод вызывают точно один раз в течение каждого раза, когда Вы вызываете этот метод. Если Вы вызываете этот метод дважды по очереди, менеджер расположения отменяет предыдущую отсрочку прежде, чем запустить новую. Поэтому необходимо отслеживать то, задерживаются ли обновления в настоящее время и избегают вызывать этот метод многократно по очереди. Если Вы хотите изменить критерии отсрочки по какой-либо причине, и поэтому вызвать этот метод снова, подготовлены получить a kCLErrorDeferredCanceled ошибка в Вашем делегате 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 и позже.

    См. также

    – startUpdatingLocation

  • 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 (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.

    См. также

    – startUpdatingLocation

  • headingAvailable (iOS 4.0) Свойство

    Булево значение, указывающее, в состоянии ли менеджер расположения генерировать связанные с заголовком события. (только для чтения)

    Оператор осуждения

    Используйте headingAvailable метод класса вместо этого.

    Объявление

    Objective C

    @property(readonly, nonatomic) BOOL headingAvailable

    Обсуждение

    Заголовок данных может не быть доступным на всех основанных на iOS устройствах. Необходимо проверить значение этого свойства прежде, чем попросить, чтобы менеджер расположения поставил связанные с заголовком события.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 4.0.

    См. также

    – startUpdatingHeading

  • Возвращает булево значение, указывающее, поддерживается ли контроль области на текущем устройстве.

    Оператор осуждения

    Использовать isMonitoringAvailableForClass: вместо этого.

    Объявление

    Objective C

    + (BOOL)regionMonitoringAvailable

    Возвращаемое значение

    YEStrue если контроль области доступен; NOfalse если это не.

    Обсуждение

    Поддержка контроля области может не быть доступной на всех устройствах и моделях. Необходимо проверить значение этого свойства прежде, чем попытаться установить любые области или инициировать контроль области.

    Даже если контрольная поддержка области присутствует на устройстве, это может все еще быть недоступно, потому что пользователь отключил его для текущего приложения или для всех приложений.

    Специальные замечания

    Этот класс осуждается в iOS 7 и позже но все еще поддерживается в OS X.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    + regionMonitoringEnabled

  • Возвращает булево значение, указывающее, включается ли в настоящее время контроль области.

    Оператор осуждения

    Использовать isMonitoringAvailableForClass: и authorizationStatus вместо этого.

    Объявление

    Objective C

    + (BOOL)regionMonitoringEnabled

    Возвращаемое значение

    YEStrue если контроль области доступен и в настоящее время включается; NOfalse если это недоступно или не включенное.

    Обсуждение

    В iOS пользователь может включить или отключить службы определения местоположения (включая контроль области) использование средств управления в Настройках> Службы определения местоположения.

    Необходимо проверить возвращаемое значение этого метода перед стартовыми контрольными обновлениями области, чтобы определить, позволяет ли пользователь в настоящее время службам определения местоположения использоваться вообще. Если возвращается этот метод NOfalse и Вы запускаете контрольные обновления области так или иначе, Базовая платформа Расположения предлагает пользователю подтверждать выяснение, должны ли быть повторно включены службы определения местоположения.

    Этот метод не проверяет, чтобы видеть, поддерживаются ли контрольные возможности области фактически устройством. Поэтому необходимо также проверить возвращаемое значение regionMonitoringAvailable метод класса прежде, чем попытаться запустить контрольные службы области.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 6.0.

    См. также

    + regionMonitoringAvailable

  • Начинает контролировать указанную область для граничных пересечений.

    Оператор осуждения

    Использовать startMonitoringForRegion: вместо этого.

    Объявление

    Objective C

    - (void)startMonitoringForRegion:(CLRegion *)region desiredAccuracy:(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.

  • purpose (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;

    Константы

    • NotDetermined

      kCLAuthorizationStatusNotDetermined

      Пользователь еще не сделал выбор относительно того, может ли это приложение использовать службы определения местоположения.

      Доступный в iOS 4.2 и позже.

    • Restricted

      kCLAuthorizationStatusRestricted

      Это приложение не разрешено использовать службы определения местоположения. Пользователь не может изменить состояние этого приложения, возможно вследствие активных ограничений, таких как существующий родительский контроль.

      Доступный в iOS 4.2 и позже.

    • Denied

      kCLAuthorizationStatusDenied

      Пользователь явно отклонил использование служб определения местоположения для этого приложения, или службы определения местоположения в настоящее время отключаются в Настройках.

      Доступный в iOS 4.2 и позже.

    • kCLAuthorizationStatusAuthorized

      Это приложение разрешено использовать службы определения местоположения.

      Доступный в iOS 2.0 и позже.

      Осуждаемый в iOS 8.0.

    • AuthorizedAlways

      kCLAuthorizationStatusAuthorizedAlways

      Это приложение разрешено запустить службы определения местоположения в любое время. Эта авторизация позволяет Вам использовать все службы определения местоположения, включая тех для контроля областей и значительных изменений расположения.

      Доступный в iOS 8.0 и позже.

    • AuthorizedWhenInUse

      kCLAuthorizationStatusAuthorizedWhenInUse

      Это приложение разрешено запустить большинство служб определения местоположения при выполнении на переднем плане. Эта авторизация не позволяет Вам использовать APIs, который мог запустить Ваше приложение в ответ на событие, такое как контроль области и значительные службы изменения расположения.

      Доступный в iOS 8.0 и позже.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 4.2 и позже.

  • Константы для указания максимальных значений во время задержанных обновлений.

    Объявление

    Swift

    let CLLocationDistanceMax: CLLocationDistance let CLTimeIntervalMax: NSTimeInterval

    Objective C

    extern const CLLocationDistance CLLocationDistanceMax; extern const NSTimeInterval CLTimeIntervalMax;

    Константы

    • CLLocationDistanceMax

      Значение, представляющее неограниченное расстояние.

      Доступный в iOS 6.0 и позже.

    • CLTimeIntervalMax

      Значение, представляющее неограниченное количество времени.

      Доступный в iOS 6.0 и позже.

  • Эти константы указывают тип действия, связанного с обновлениями информации о местоположении.

    Объявление

    Swift

    enum CLActivityType : Int { case Other case AutomotiveNavigation case Fitness case OtherNavigation }

    Objective C

    enum { CLActivityTypeOther = 1, CLActivityTypeAutomotiveNavigation, CLActivityTypeFitness, CLActivityTypeOtherNavigation, }; typedef NSInteger CLActivityType;

    Константы

    • Other

      CLActivityTypeOther

      Менеджер расположения используется для неизвестного действия.

      Доступный в iOS 6.0 и позже.

    • AutomotiveNavigation

      CLActivityTypeAutomotiveNavigation

      Менеджер расположения используется в частности во время автомобильной навигации для отслеживания изменений расположения в автомобиле. Это действие могло бы заставить обновления информации о местоположении быть приостановленными только, когда механизм не перемещается в течение длительного периода времени.

      Доступный в iOS 6.0 и позже.

    • Fitness

      CLActivityTypeFitness

      Менеджер расположения используется для отслеживания любого связанного с пешеходом действия. Это действие могло бы заставить обновления информации о местоположении быть приостановленными только, когда пользователь не перемещает значительное расстояние в течение времени.

      Доступный в iOS 6.0 и позже.

    • OtherNavigation

      CLActivityTypeOtherNavigation

      Менеджер расположения используется для отслеживания перемещений за другие типы автомобильной навигации, которые не являются связанным автомобилем. Например, Вы использовали бы это для отслеживания навигации судном, поездом или плоскостью. Не используйте этот тип для пешеходного отслеживания навигации. Это действие могло бы заставить обновления информации о местоположении быть приостановленными только, когда механизм не перемещает значительное расстояние в течение времени.

      Доступный в iOS 6.0 и позже.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 6.0 и позже.