计步器(CMStepCounter) - (Obj-C)
2016-07-15 本文已影响159人
ShenYj
CMStepCounter计步的结果并不是很准确,iOS 8.0 已经过期
示例代码:
#import "ViewController.h"
#import <CoreMotion/CoreMotion.h>
@interface ViewController ()
@property (nonatomic,strong) CMStepCounter *stepCounter;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 1. 创建计步器
self.stepCounter = [[CMStepCounter alloc]init];
// 2. 开始计步
/**
* 开始计步
*
* @param UpdatesToQueue 执行回调的队列
* @param updateOn 从第几步开始计算
* @param Handler 回调
*
*/
[self.stepCounter startStepCountingUpdatesToQueue:[NSOperationQueue mainQueue] updateOn:1 withHandler:^(NSInteger numberOfSteps, NSDate * _Nonnull timestamp, NSError * _Nullable error) {
NSLog(@"%s",__func__);
NSLog(@"%zd",numberOfSteps);
}];
}
@end
运行时会提示授权:
授权.jpg因为需要实时获取数据,通过回调返回数据,所以为了保证创建的计步器对象不被销毁,同样需要强引用