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

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

Разработчик

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

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

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

CLLocationManagerDelegate

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


Не применимый

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


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


Swift

import CoreLocation

Objective C

@import CoreLocation;

Доступность


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

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

После получения успешного расположения или заголовка обновления, можно использовать результат обновить пользовательский интерфейс или выполнить другие действия. Если расположение или заголовок не могли бы быть определены, Вы могли бы хотеть остановить обновления в течение короткого периода времени и попробовать еще раз позже. Можно использовать stopUpdatingLocation, stopMonitoringSignificantLocationChanges, stopUpdatingHeading, stopMonitoringForRegion:, или stopMonitoringVisits методы CLLocationManager остановить различные службы определения местоположения.

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

  • Говорит делегату, что новые данные расположения доступны.

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

    Параметры

    manager

    Менеджер расположения возражает, что генерировал событие обновления.

    locations

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

    Обсуждение

    Реализация этого метода является дополнительной, но рекомендована.

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

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

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didFailWithError error: NSError!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

    Параметры

    manager

    Объект менеджера расположения, который был неспособен получить расположение.

    error

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

    Обсуждение

    Реализация этого метода является дополнительной, но рекомендована.

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

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

  • Говорит делегату, что больше не будут задерживаться обновления.

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didFinishDeferredUpdatesWithError error: NSError!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didFinishDeferredUpdatesWithError:(NSError *)error

    Параметры

    manager

    Менеджер расположения возражает, что генерировал событие обновления.

    error

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

    Обсуждение

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

  • Говорит делегату, что новое значение расположения доступно.

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

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

    Объявление

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

    Параметры

    manager

    Менеджер расположения возражает, что генерировал событие обновления.

    newLocation

    Новые данные расположения.

    oldLocation

    Данные расположения от предыдущего обновления. Если это - первое событие обновления, поставленное этим менеджером расположения, этот параметр nil.

    Обсуждение

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

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

    Objective C

    @import CoreLocation;

    Доступность

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

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

  • Говорит делегату, что были приостановлены обновления информации о местоположении. (требуемый)

    Объявление

    Swift

    optional func locationManagerDidPauseLocationUpdates(_ manager: CLLocationManager!)

    Objective C

    - (void)locationManagerDidPauseLocationUpdates:(CLLocationManager *)manager

    Параметры

    manager

    Менеджер расположения возражает, что приостановил поставку событий.

    Обсуждение

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

  • Говорит делегату, что возобновилась поставка обновлений информации о местоположении. (требуемый)

    Объявление

    Swift

    optional func locationManagerDidResumeLocationUpdates(_ manager: CLLocationManager!)

    Objective C

    - (void)locationManagerDidResumeLocationUpdates:(CLLocationManager *)manager

    Параметры

    manager

    Менеджер расположения, возобновивший поставку событий.

    Обсуждение

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

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

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didUpdateHeading newHeading: CLHeading!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading

    Параметры

    manager

    Менеджер расположения возражает, что генерировал событие обновления.

    newHeading

    Новые данные заголовка.

    Обсуждение

    Реализация этого метода является дополнительной, но ожидается, если Вы начинаете возглавлять обновления с помощью startUpdatingHeading метод.

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

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

    Объявление

    Swift

    optional func locationManagerShouldDisplayHeadingCalibration(_ manager: CLLocationManager!) -> Bool

    Objective C

    - (BOOL)locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager

    Параметры

    manager

    Менеджер расположения объектное координирование дисплея возглавляющего калибровочного предупреждения.

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

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

    Обсуждение

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

    • В первый раз обновления заголовка когда-либо требуют

    • Когда Базовое Расположение наблюдает существенное изменение в величине или наклоне наблюдаемого магнитного поля

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

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

  • Говорит делегату, что пользователь ввел указанную область.

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didEnterRegion region: CLRegion!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region

    Параметры

    manager

    Менеджер расположения объектное создание отчетов о событии.

    region

    Объект, содержащий информацию о вводившейся области.

    Обсуждение

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

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

  • Говорит делегату, что пользователь оставил указанную область.

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didExitRegion region: CLRegion!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region

    Параметры

    manager

    Менеджер расположения объектное создание отчетов о событии.

    region

    Объект, содержащий информацию об области, из которой вышли.

    Обсуждение

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

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

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

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didDetermineState state: CLRegionState, forRegion region: CLRegion!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region

    Параметры

    manager

    Менеджер расположения объектное создание отчетов о событии.

    state

    Состояние указанной области. Для списка возможных значений посмотрите CLRegionState ввести.

    region

    Область, состояние которой было определено.

    Обсуждение

    Вызовы диспетчера расположения этот метод каждый раз, когда существует граничный переход для области. Это вызывает этот метод в дополнение к вызову locationManager:didEnterRegion: и locationManager:didExitRegion: методы. Менеджер расположения также вызывает этот метод в ответ на вызов к requestStateForRegion: метод, работающий асинхронно.

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

  • Говорит делегату, что произошла контрольная ошибка области.

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, monitoringDidFailForRegion region: CLRegion!, withError error: NSError!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager monitoringDidFailForRegion:(CLRegion *)region withError:(NSError *)error

    Параметры

    manager

    Менеджер расположения объектное создание отчетов о событии.

    region

    Область, для которой произошла ошибка.

    error

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

    Обсуждение

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

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

  • Говорит делегату, что контролируется новая область.

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didStartMonitoringForRegion region: CLRegion!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region

    Параметры

    manager

    Менеджер расположения объектное создание отчетов о событии.

    region

    Контролирующаяся область.

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

  • Говорит делегату, что один или несколько маркеров находятся в диапазоне.

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didRangeBeacons beacons: [AnyObject]!, inRegion region: CLBeaconRegion!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region

    Параметры

    manager

    Менеджер расположения объектное создание отчетов о событии.

    beacons

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

    region

    Объект области, содержащий параметры, использовавшиеся для определения местоположения маркеров.

    Обсуждение

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

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

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, rangingBeaconsDidFailForRegion region: CLBeaconRegion!, withError error: NSError!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager rangingBeaconsDidFailForRegion:(CLBeaconRegion *)region withError:(NSError *)error

    Параметры

    manager

    Менеджер расположения объектное создание отчетов о событии.

    region

    Объект области, встретившийся с ошибкой.

    error

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

    Обсуждение

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

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

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didVisit visit: CLVisit!)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didVisit:(CLVisit *)visit

    Параметры

    manager

    Менеджер расположения объектное создание отчетов о событии.

    visit

    Объект посещения, содержащий информацию о событии.

    Обсуждение

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

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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

  • Говорит делегату что состояние авторизации для измененного приложения.

    Объявление

    Swift

    optional func locationManager(_ manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus)

    Objective C

    - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status

    Параметры

    manager

    Менеджер расположения объектное создание отчетов о событии.

    status

    Новое состояние авторизации для приложения.

    Обсуждение

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

    Когда Вы вызываете, если уже известно состояние авторизации requestWhenInUseAuthorization или requestAlwaysAuthorization метод, менеджер расположения не сообщает о текущем состоянии авторизации этому методу. Менеджер расположения только сообщает об изменениях в состоянии авторизации. Например, когда состояние изменяется от, это вызывает этот метод kCLAuthorizationStatusNotDetermined к kCLAuthorizationStatusAuthorizedWhenInUse.

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

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

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