//需要走一会label才会更新.....
#import "ViewController.h"
#import <CoreMotion/CoreMotion.h>
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *textLabel;
@property (nonatomic , strong)CMStepCounter *stepCounter;
@property (nonatomic , strong)CMPedometer *pedometer;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// [self deprecatedApi];
// 创建计步器对象
self.pedometer = [CMPedometer new];
//判断设备是否支持
if ([CMPedometer isStepCountingAvailable]) {
__weak typeof(self) weakSelf = self;
//开始计步
[self.pedometer startPedometerUpdatesFromDate:[NSDate new] withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
weakSelf.textLabel.text = [NSString stringWithFormat:@"您已走了%@步",pedometerData.numberOfSteps];
/*
// 开始时间
@property(readonly, nonatomic) NSDate *startDate;
// 结束时间
@property(readonly, nonatomic) NSDate *endDate;
// 走了多少步
@property(readonly, nonatomic) NSNumber *numberOfSteps;
// 走了多少距离
@property(readonly, nonatomic, nullable) NSNumber *distance;
// 上楼
@property(readonly, nonatomic, nullable) NSNumber *floorsAscended;
// 下楼
@property(readonly, nonatomic, nullable) NSNumber *floorsDescended;
// 步速
@property(readonly, nonatomic, nullable) NSNumber *currentPace NS_AVAILABLE(NA,9_0);
// 节奏
@property(readonly, nonatomic, nullable) NSNumber *currentCadence NS_AVAILABLE(NA,9_0);
*/
}];
}
}
// 老的API 已经被废弃
- (void)deprecatedApi {
// 创建计步器对象(注意需要强引用)
self.stepCounter = [CMStepCounter new];
// 判断设备是否支持
if ([CMStepCounter isStepCountingAvailable]) {
__weak typeof(self) weakSelf = self;
//开始计步
[self.stepCounter startStepCountingUpdatesToQueue:[NSOperationQueue mainQueue] updateOn:1 withHandler:^(NSInteger numberOfSteps, NSDate * _Nonnull timestamp, NSError * _Nullable error) {
weakSelf.textLabel.text = [NSString stringWithFormat:@"您已走了%ld步",numberOfSteps];
}];
}
}
@end