码迷,mamicode.com
首页 > 移动开发 > 详细

IOS 计步器

时间:2017-06-18 22:40:28      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:rda   time   atom   介绍   复制   log   操作   tom   改变   

这篇博客介绍的是当前比较流行的“计步器”-只是简单的知识点

计步器的实现在IOS8开始进行了改变。

但是我会对之前之后的都进行简单介绍。

IOS 8 -

技术分享
//
//  ViewController.m
//  CX 计步器
//
//  Created by ma c on 16/4/12.
//  Copyright ? 2016年 bjsxt. All rights reserved.
//

#import "ViewController.h"
#import <CoreMotion/CoreMotion.h>

@interface ViewController ()

@property (nonatomic, strong) CMStepCounter * counter;

@end

@implementation ViewController

#pragma mark - <懒加载>
- (CMStepCounter *)counter{
    if (!_counter) {
        _counter = [[CMStepCounter alloc]init];
    }
    return _counter;
}


- (void)viewDidLoad {
    [super viewDidLoad];
    
    //判断计步器是否可用
    if (![CMStepCounter isStepCountingAvailable]) {
        NSLog(@"计步器不可用");
        return;
    }
    //开始计步
    //startStepCountingUpdatesToQueue 选择在哪个线程里进行
    //updateOn 对应的是每隔几秒后回调下面的block
    [self.counter startStepCountingUpdatesToQueue:[NSOperationQueue mainQueue] updateOn:2 withHandler:^(NSInteger numberOfSteps, NSDate * _Nonnull timestamp, NSError * _Nullable error) {
        
        if (error) {
            return ;
        }
        
        NSLog(@"可以在这里进行一些操作");
        
    }];
}


@end
技术分享

IOS 8 +

技术分享
//
//  ViewController.m
//  CX 计步器
//
//  Created by ma c on 16/4/12.
//  Copyright ? 2016年 bjsxt. All rights reserved.
//

#import "ViewController.h"
#import <CoreMotion/CoreMotion.h>

@interface ViewController ()

@property (nonatomic, strong) CMPedometer * meter;

@end

@implementation ViewController

#pragma mark - <懒加载>
- (CMPedometer *)meter{
    if (!_meter) {
        _meter = [[CMPedometer alloc]init];
    }
    return _meter;
}


- (void)viewDidLoad {
    [super viewDidLoad];
    
    //判断计步器是否可用
    if (![CMPedometer isStepCountingAvailable]) {
        NSLog(@"计步器不可用");
        return;
    }
    //开始计步
    //在一段时间内的部步数与距离
    [self.meter queryPedometerDataFromDate:[NSDate date] toDate:[NSDate dateWithTimeIntervalSinceNow:60*60] withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
        if (error)
        {
            NSLog(@"error===%@",error);
        }
        else {
            NSLog(@"步数===%@",pedometerData.numberOfSteps);
            NSLog(@"距离===%@",pedometerData.distance);
        }
    }];
}


@end
技术分享

 

IOS 计步器

标签:rda   time   atom   介绍   复制   log   操作   tom   改变   

原文地址:http://www.cnblogs.com/wuyuxin/p/7045634.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!