CMMotionActivityManager
Оператор импорта
Swift
import CoreMotion
Objective C
@import CoreMotion;
Доступность
Доступный в iOS 7.0 и позже.
CMMotionActivityManager
класс обеспечивает доступ к данным движения, хранившим устройством. Данные движения отражаются, идет ли пользователь, выполнение, в механизме, или стационарный в течение многих промежутков времени. Приложение навигации могло бы искать изменения в текущем типе движения и предложить различные направления для каждого. Используя этот класс, можно попросить уведомления, когда текущий тип движения изменяется, или можно собрать прошлые данные изменения движения.
-
Возвращает булевскую переменную, указывающую, доступны ли данные движения на текущем устройстве.
Объявление
Swift
class func isActivityAvailable() -> Bool
Objective C
+ (BOOL)isActivityAvailable
Возвращаемое значение
YES
true
если данные движения доступны илиNO
false
если это не.Обсуждение
Данные движения не доступны на всех устройствах на iOS. Используйте этот метод, чтобы определить, доступна ли поддержка на текущем устройстве.
Оператор импорта
Objective C
@import CoreMotion;
Swift
import CoreMotion
Доступность
Доступный в iOS 7.0 и позже.
-
Запускает поставку текущих обновлений данных движения к Вашему приложению.
Объявление
Swift
func startActivityUpdatesToQueue(_
queue
: NSOperationQueue!, withHandlerhandler
: CMMotionActivityHandler!)Objective C
- (void)startActivityUpdatesToQueue:(NSOperationQueue *)
queue
withHandler:(CMMotionActivityHandler)handler
Параметры
queue
Очередь работы, на которой можно выполнить указанное
handler
блок. Можно указать пользовательскую очередь или использовать очередь работы, связанную с основным потоком приложения. Этот параметр не должен бытьnil
.handler
Блок для выполнения, когда обнаруживается изменение в текущем типе движения. Для получения информации о параметрах этого блока посмотрите
CMMotionActivityHandler
. Это свойство не должно бытьnil
.Обсуждение
Этот метод инициирует отслеживание данных движения асинхронно. По вызову этого метода менеджер по действию движения выполняется
handler
блок на указанномqueue
, создание отчетов о текущем движении в действительности для устройства. После этого менеджер по действию движения выполняетсяhandler
блокируйте только, когда изменятся данные движения.handler
блок выполняется на основе максимальных усилий, и обновления не поставлены, в то время как приостановлено Ваше приложение. Если обновления наступили, в то время как Ваше приложение было приостановлено, последнее обновление поставлено Вашему приложению, когда это возобновляет выполнение. Для получения всех обновлений, произошедших, в то время как приложение было приостановлено используйтеqueryActivityStartingFromDate:toDate:toQueue:withHandler:
метод.После стартовых обновлений действия менеджер по действию движения сообщает об изменениях в его блоке, пока Вы не вызываете
stopActivityUpdates
метод. Если Вы вызываете этот метод снова с новым блоком, менеджер по действию прекращает поставлять обновления старому блоку и поставляет им новому блоку вместо этого. Когда менеджер по действию движения сам объект освобожден, обновления останавливаются в целом.Оператор импорта
Objective C
@import CoreMotion;
Swift
import CoreMotion
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Останавливает поставку обновлений движения к Вашему приложению
Объявление
Swift
func stopActivityUpdates()
Objective C
- (void)stopActivityUpdates
Обсуждение
Вызовите этот метод для остановки поставки обновлений, которые Вы запустили путем вызова
startActivityUpdatesToQueue:withHandler:
метод. Этот метод не останавливается, запросы начали использоватьqueryActivityStartingFromDate:toDate:toQueue:withHandler:
метод.Оператор импорта
Objective C
@import CoreMotion;
Swift
import CoreMotion
Доступность
Доступный в iOS 7.0 и позже.
-
queryActivityStartingFromDate (_: toDate:toQueue:withHandler:) - queryActivityStartingFromDate:toDate:toQueue:withHandler:
Собирает и возвращает исторические данные движения для указанного периода времени
Объявление
Swift
func queryActivityStartingFromDate(_
start
: NSDate!, toDateend
: NSDate!, toQueuequeue
: NSOperationQueue!, withHandlerhandler
: CMMotionActivityQueryHandler!)Objective C
- (void)queryActivityStartingFromDate:(NSDate *)
start
toDate:(NSDate *)end
toQueue:(NSOperationQueue *)queue
withHandler:(CMMotionActivityQueryHandler)handler
Параметры
start
Время начала для использования при сборе данных движения. Этот параметр не должен быть
nil
.end
Время окончания для использования при сборе данных движения. Этот параметр не должен быть
nil
.queue
Очередь работы, на которой можно выполнить указанное
handler
блок. Можно указать пользовательскую очередь или использовать очередь работы, связанную с основным потоком приложения. Этот параметр не должен бытьnil
.handler
Блок для выполнения с результатами. Для получения информации о параметрах этого блока посмотрите
CMMotionActivityQueryHandler
. Этот параметр не должен бытьnil
.Обсуждение
Этот метод работает асинхронно, возвратившись сразу и поставляя результаты к указанному
handler
блок. Система хранит только ценность прошлых семи дней данных действия самое большее. Если нет никаких выборок для указанного диапазона времени, ошибочного объекта с кодомCMErrorUnknown
передаетсяhandler
блок.Оператор импорта
Objective C
@import CoreMotion;
Swift
import CoreMotion
Доступность
Доступный в iOS 7.0 и позже.
Типы данных
-
Блок, сообщающий о текущем движении, связанном с устройством.
Объявление
Swift
typealias CMMotionActivityHandler = (CMMotionActivity!) -> Void
Objective C
typedef void (^CMMotionActivityHandler)(CMMotionActivity *activity)
Обсуждение
Этот блок берет следующий параметр:
activity
Объект действия движения, определяющий текущий тип движения для устройства.
Оператор импорта
Objective C
@import CoreMotion;
Swift
import CoreMotion
Доступность
Доступный в iOS 7.0 и позже.
-
Блок, сообщающий об обновлениях движения, произошедших между указанным интервалом запроса.
Объявление
Swift
typealias CMMotionActivityQueryHandler = ([AnyObject]!, NSError!) -> Void
Objective C
typedef void (^CMMotionActivityQueryHandler)(NSArray *activities, NSError *error)
Обсуждение
Этот блок берет следующие параметры:
activities
Массив
CMMotionActivity
объекты, указывающие произошедшие обновления. Объекты в массиве упорядочиваются к этому времени, в котором они произошли в интервале требуемого времени. ИспользуйтеstartDate
когда обновление произошло, свойство в каждом движении возражает для определения.error
Ошибочное указание объекта, что была проблема, собирающая данные или
nil
если данные движения были определены правильно.Оператор импорта
Objective C
@import CoreMotion;
Swift
import CoreMotion
Доступность
Доступный в iOS 7.0 и позже.