Я хочу создать приложение, которое может получать и обрабатывать обновления движения, чтобы понять, является ли пользователь стационарным, ходящим, запущенным или находящимся на транспорте. Я видел по ссылке, что CMMotionActivityManager может быть полезен для меня.Как использовать CMMotionActivityManager и получать обновления?
Класс CMMotionActivityManager обеспечивает доступ к данным движения, хранящимся на устройстве. Данные о движении отражают, идет ли пользователь пешком, бег, в автомобиле или стационарный в течение периодов времени.
Я новичок в разработке приложений, и я не понимаю, как использовать метод для запуска обновления. Способ для этого - - (void)startActivityUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMMotionActivityHandler)handler
. Я не понимаю, что я должен написать на обработчик, поскольку ссылка говорит:
обработчик Блок для выполнения при изменении текущего типа движения обнаружено. Информацию о параметрах этого блока см. В CMMotionActivityHandler. Это свойство не должно быть nil.
Моя реализация:
- (IBAction)startButtonPressed:(id)sender {
_motionActivityManager = [[CMMotionActivityManager alloc] init];
[_motionActivityManager startActivityUpdatesToQueue:NSOperationQueueDefaultMaxConcurrentOperationCount withHandler:CMMotionActivityHandler];
}
Я уже ввезли рамки CoreMotion Но XCode не признают CMMotionActivityHandler
, где я не прав? Как я могу решить эту проблему?
Благодаря
Не могли бы вы объяснить, что делает этот код? Я этого не понимаю. Что делает код внутри motionHandler? – emattiazzi
Это CMMotionManager, а не CMMotionActivityManager –
NSLog не нужно выполнять в основной очереди, что является излишним. –