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

 

转载于:https://www.cnblogs.com/xubaoaichiyu/p/5383399.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue学习之二ECMAScript6标准

一、ECMAScript6标准简述 ECMAScript 6.0&#xff08;以下简称 ES6&#xff09;是 JavaScript 语言的下一代标准&#xff0c;已经在 2015 年 6 月正式发布了。它的目标&#xff0c;是使得 JavaScript 语言可以用来编写复杂的大型应用程序&#xff0c;成为企业级开发语言。 1.1E…

抖音吸粉_抖音吸粉5大实用方法首次分享!轻松实现粉丝10000+

抖音&#xff0c;是一款可以拍短视频的音乐创意短视频社交软件&#xff0c;该软件于2016年9月上线&#xff0c;是一个专注年轻人音乐短视频社区。用户可以通过这款软件选择歌曲&#xff0c;拍摄音乐短视频&#xff0c;形成自己的作品。抖音APP仅推出半年&#xff0c;用户量就突…

mapper mysql 主键_实现通用mapper主键策略兼容mysql和oracle

【原创文章&#xff0c;转载请注明原文章地址&#xff0c;谢谢&#xff01;】1.直接用官方提供的注解方法是无法达到兼容效果的2.跟踪源码看看是否有其他方法3.这里有个genSql&#xff0c;可以看一下这个类4.创建一个自定义的处理类实现GenSql(代码中是我实际项目中用到的策略&…

权限分配界面 纯手工 仅用到bootstrap的架构 以及 c标签

<div class"form-group"> <div class"row"> <label class"col-sm-2 control-label">配置权限</label> <div class"col-sm-10"> <c:forEach var"m" items…

数据管理与数据库 大学课程_根据数据显示的50种最佳免费在线大学课程

数据管理与数据库 大学课程When I launched Class Central back in November 2011, there were around 18 or so free online courses, and almost all of them were from Stanford.当我在2011年11月推出Class Central时&#xff0c;大约有18项免费在线课程&#xff0c;几乎所有…

每天一个linux命令(12):more命令

more命令&#xff0c;功能类似 cat &#xff0c;cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读&#xff0c;而最基本的指令就是按空白键&#xff08;space&#xff09;就往下一页显示&#xff0c;按 b 键就会往回&#xff08;back&…

java 面试题 由浅入深_面试官由浅入深的面试套路

阅读文本大概需要3分钟。从上图看来面试官面试是有套路的&#xff0c;一不小心就一直被套路。0x01&#xff1a;Thread面试官&#xff1a;创建线程有哪几种方式&#xff1f;应聘者&#xff1a;继承Thread类、实现Runable接口、使用j.u.c中的线程池面试官&#xff1a;继承Thread类…

怎么用centos7运行c语言程序_centos如何编译c语言代码

centos如何编译c语言代码,文件,选项,作用,链接,程序 centos如何编译c语言代码 易采站长站,站长之家为您整理了centos如何编译c语言代码的相关内容。 编译c,c++代码 安装gcc 1、使用如下命令查询 centos 官方gcc的所有包:yum -list gcc* 可安装的软件包gcc.x86_64gcc-c++.x86…

第四篇:基本数据类型及用法(1)

字符串&#xff08;str型&#xff09; -可以做加法&#xff0c;乘法 乘法例&#xff1a; n1"alex" n2n1*3 print(n2) #结果&#xff1a;alexalexalex -首字母大写: capitalize() -所有字母变小写: casefold()、lower() #casefold更牛&#xff0c;很多未知的对应关系也…

Android Studio 错误集

错误列表与解决方案: 1.Android studio Gradle project sync failed Android studio 构建项目出错 Error:Unable to start the daemon process: could not reserve enough space for object heap.Please assign more memory to Gradle in the projects gradle.properties file.…

需求简报_代码简报:我如何通过做自己喜欢的事情来获得顶级技术实习

需求简报Here are three stories we published this week that are worth your time:这是我们本周发布的三个值得您关注的故事&#xff1a; How I landed a top-tier tech internship by doing something I love: 7 minute read 我如何通过做自己喜欢的事情获得一流的技术实习…

review what i studied `date` - 2017-3-31

在11 月份内&#xff0c;每天的早上6 点到12 点中&#xff0c;每隔2 小时执行一次/usr/bin/httpd.sh 怎么实现0 6-12/2 * 11 * /usr/bin/httpd.shNginx中的ip_hash是指讲一个地址的请求永久分发至后端的一台RealServer&#xff0c;直至这台RealServer宕机Zabbix和Nagios的工作原…

java string转long报错_java.lang.Integer cannot be cast to java.lang.Long解决办法

你好我是辰兮&#xff0c;本次是项目遇到的java.lang.Integer cannot be cast to java.lang.Long异常以及相对应的解决方案。文章目录一、实战问题用postman测试数据报错&#xff0c;类型转换异常&#xff01;如何将Integer类型转换成长整形 &#xff1f;先转成String型&#x…

pyqt 界面关闭信号_木辛老师的编程课堂之Python和Qt实战慕课软件开发:增加关闭按钮...

软件实战开始&#xff0c;快速提供编程能力&#xff1b;通过实战&#xff0c;分析产品需求&#xff0c;梳理设计需求&#xff0c;提升项目分析和架构的能力。快点跟着木辛老师一起学习吧&#xff01;请点击右上角“关注”按钮关注我们哟&#xff1a;跟着木辛老师学习Python编程…

从零开始nodejs系列文章

http://blog.fens.me/series-nodejs/转载于:https://www.cnblogs.com/chinafbi/p/5394482.html

Leetcode589.N-ary Tree Preorder TraversalN叉树的前序遍历

给定一个 N 叉树&#xff0c;返回其节点值的前序遍历。 class Node { public:int val;vector<Node*> children;Node() {}Node(int _val, vector<Node*> _children) {val _val;children _children;} };//递归 class Solution { public:vector<int> res;vect…

打破双亲委派么,怎么打破_质量保证被打破。 这就是我们如何使其像其他所有东西一样敏捷。...

打破双亲委派么,怎么打破by Derwin由Derwin 质量保证被打破。 这就是我们如何使其像其他所有东西一样敏捷。 (Quality Assurance is broken. Here’s how we can make it as agile as everything else.) Process is the key to great software.过程是出色软件的关键。 In gen…

android java.lang.linkageerror_使用eclipse中的maven构建web应用出现 java.lang.LinkageError异常...

▒▒▒▒: Servlet.service() for servlet [jsp] in context with path [/webdemo] threw exception [java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader) previously initiated loading for a different typ…

android 键盘遮盖输入框_Android软键盘挡住输入框的终极解决方案

前言开发做得久了&#xff0c;总免不了会遇到各种坑。而在Android开发的路上&#xff0c;『软键盘挡住了输入框』这个坑&#xff0c;可谓是一个旷日持久的巨坑——来来来&#xff0c;我们慢慢看。入门篇最基本的情况&#xff0c;如图所示&#xff1a;在页面底部有一个EditText&…

最全面的几何画板实用教程视频免费下载

不同的选择就会有不同的人生夜&#xff0c;这里小编为奋斗在教学一线的老师们送个大福利&#xff0c;这也是老师们充实自己的好去处。作为数学老师一枚&#xff0c;在平时的教学中应该用到很多教学辅助软件&#xff0c;而几何画板就是其中一款。众所周知&#xff0c;几何画板是…