zoukankan      html  css  js  c++  java
  • IOS 计步器

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

    计步器的实现在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
  • 相关阅读:
    Python 资源大全中文版
    Life is short.,You need Python
    哪些 Python 库让你相见恨晚?
    中国裁判文书网全网最新爬虫分析
    关于pycharm导入其他项目时出现找不到python无法运行的问题
    禅道项目管理软件配置及使用教程
    curl
    fusionpbx 中文 汉化
    kafka operation
    golang包管理工具——glide
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5383399.html
Copyright © 2011-2022 走看看