CMAltimeter
Оператор импорта
Swift
import CoreMotion
Objective C
@import CoreMotion;
Доступность
Доступный в iOS 8.0 и позже.
Используйте a CMAltimeter
объект инициировать поставку связанных с высотой данных к Вашему приложению. Высотные события отражают изменение в текущей высоте, не абсолютную высоту. Таким образом, путешествующее пешком приложение могло бы использовать этот объект отследить усиление повышения пользователя в течение экскурсии. Поскольку высотные события могут не быть доступными на всех устройствах, всегда вызывайте isRelativeAltitudeAvailable
метод перед использованием этой службы.
После проверки доступность высотных данных Вы запускаете поставку событий путем вызова startRelativeAltitudeUpdatesToQueue:withHandler:
метод. Базовое Движение генерирует события равномерно (независимо от того, изменились ли данные), и поставляет им блоку, который Вы указали при запуске. Когда Вам больше не будут нужны данные о событии, вызовите stopRelativeAltitudeUpdates
метод.
Базовое Движение поставляет события высотомера только, в то время как Ваше приложение работает, или на переднем плане или на фоне. Если Ваше приложение приостановлено, поставка события останавливается временно. Когда Ваше приложение возвращается в передний план, поставка события возобновляет.
-
Возвращает булево значение, указывающее, изменяются ли текущие поддержки устройства, генерирующие данные для относительной высоты.
Объявление
Swift
class func isRelativeAltitudeAvailable() -> Bool
Objective C
+ (BOOL)isRelativeAltitudeAvailable
Возвращаемое значение
YES
true
если устройство поддерживает относительные высотные изменения илиNO
false
если это не делает.Обсуждение
Используйте этот метод, чтобы определить, доступны ли высотные обновления прежде, чем вызвать
startRelativeAltitudeUpdatesToQueue:withHandler:
метод.Оператор импорта
Objective C
@import CoreMotion;
Swift
import CoreMotion
Доступность
Доступный в iOS 8.0 и позже.
-
startRelativeAltitudeUpdatesToQueue (_: withHandler:) - startRelativeAltitudeUpdatesToQueue:withHandler:
Запускает поставку высотных данных к указанному блоку обработчика.
Объявление
Swift
func startRelativeAltitudeUpdatesToQueue(_
queue
: NSOperationQueue!, withHandlerhandler
: CMAltitudeHandler!)Objective C
- (void)startRelativeAltitudeUpdatesToQueue:(NSOperationQueue *)
queue
withHandler:(CMAltitudeHandler)handler
Параметры
queue
Очередь работы, на которой можно выполнить Ваш блок обработчика. Объектно-ориентированные памяти высотомера сильная ссылка к этому объекту. Этот параметр не должен быть
nil
.handler
Блок обработчика для выполнения, когда новые высотные данные доступны. Этот параметр не должен быть
nil
. Для получения информации о формате этого блока посмотритеCMAltitudeHandler
.Обсуждение
Вызовите этот метод для инициирования поставки событий. Объектно-ориентированные памяти высотомера сильная ссылка указанной очереди и делают копию Вашего блока. При вызове метода во второй раз объект высотомера выпускает свои ссылки на предыдущую очередь и обработчик прежде, чем сохранить ссылки на новые. Таким образом, только последний установленный обработчик получает события. Когда Вам больше не нужны высотные данные, или когда ошибка происходит, вызовите
stopRelativeAltitudeUpdates
метод для остановки поставки событий.Если высотные данные не доступны на текущем устройстве, этот метод ничего не делает.
Оператор импорта
Objective C
@import CoreMotion;
Swift
import CoreMotion
Доступность
Доступный в iOS 8.0 и позже.
-
Останавливает поставку высотных данных для этого объекта высотомера
Объявление
Swift
func stopRelativeAltitudeUpdates()
Objective C
- (void)stopRelativeAltitudeUpdates
Обсуждение
Вызов этого метода заканчивает поставку высотных событий и выпускает ссылки на очередь работы, и блокируйте Вас указанный в
startRelativeAltitudeUpdatesToQueue:withHandler:
метод. Если поставка события еще не была запущена или была уже остановлена, этот метод ничего не делает.Оператор импорта
Objective C
@import CoreMotion;
Swift
import CoreMotion
Доступность
Доступный в iOS 8.0 и позже.
Типы данных
-
Блок для получения высотных данных.
Объявление
Swift
typealias CMAltitudeHandler = (CMAltitudeData!, NSError!) -> Void
Objective C
typedef void (^CMAltitudeHandler)(CMAltitudeData *altitudeData, NSError *error)
Обсуждение
Вы передаете блок этого типа к объекту высотомера
startRelativeAltitudeUpdatesToQueue:withHandler:
метод при запуске поставки высотных данных. Этот блок не имеет никакого возвращаемого значения и берет следующие параметры:altitudeData
Относительное изменение в высотных данных. Если была ошибка при генерации данных, этот параметр
nil
.error
Ошибочный объект, если ошибка произошла или
nil
если данные были поставлены успешно. Когда ошибка происходит, можно использовать информацию в предоставленном объекте попытаться восстановить или предупредить пользователя.Оператор импорта
Objective C
@import CoreMotion;
Swift
import CoreMotion
Доступность
Доступный в iOS 8.0 и позже.