一.介绍
CMPedometer是苹果8.0推出的,之前的只能从物理引擎的框架去做,很是尴尬。而且不支持32位的系统,意味者iphone5和以后的型号都不支持这个。现在普遍好多了,现在的公司一般最低适配到8.0或者直接10.0系统,再也不用担心这个问题了。
二.使用
先声明一个属性,不然他容易泄露,苹果的好多框架都是这样的,不能直接使用,得千万注意
@property(nonatomic,strong)CMPedometer pedometer;

三.判断权限
pedometer =[[CMPedometer alloc] init];
pragma mark返回当天00:00

  • (NSDate )obtainTodayDate{
    return [NSDate date];
    }

pragma mark返回现在的时间

  • (NSDate )obtainNextTodayDate{

NSCalendar calendar = [NSCalendar currentCalendar];
NSDate now = [NSDate date];
NSDateComponents components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:now];
NSDate startDate = [calendar dateFromComponents:components];

return startDate;
}

[pedometer queryPedometerDataFromDate:nil toDate:nil withHandler:^(CMPedometerData Nullable pedometerData, NSError Nullable error) {

}]
四.注意
1.因为我获取的是当天的时间,所以做法就很简单了,获取现在的时间,然后获取第二天凌晨的时间,刚好就是一整天的时间
获取步数,这个不能格式化成为本地时间,之前格式化过成为北京时间发现错位8个小时.
2.苹果的这个获取步数,不能每秒实时获取,容易错误,尽量1分钟获取一次好点,这样能保证获取成功
3.还有其他的方法,基本上很少用到,用到了直接看下注视就可以很清楚的看明白。