HealthKit开发教程之HealthKit的复合数据
HealthKit开发教程之HealthKit的复合数据
复合数据就是复合单位和值构成的数据。所谓复合单位就是由单位进行乘法、除法等得到的单位,如m/s、lb·ft等就是复合单位。本节将针对这些复合数据进行讲解。
HealthKit的相乘得到的复合数据
在物理学中我们可能接触过类似lb·ft(扭矩单位,扭矩是使物体发生转动的一种特殊的力矩。)这样的单位。这种单位我们可以看做是两个单位相乘得到的复合单位。开发者如果想要在自己的程序中使用这种复合单位,首先需要对这种单位进行创建。创建这种单位需要使用到unitMultipliedByUnit(_:)方法,其语法形式如下:
- func unitMultipliedByUnit(_ unit: HKUnit!) -> HKUnit!
其中,参数unit:用来指定被乘的单位。
【示例2-44:HKUnit-unitMultipliedByUnit】下面显示汽车中发电机的扭矩,以“磅.英尺”为单位。代码如下:
- import UIKit
- import HealthKit
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- var footUnit = HKUnit.footUnit() //创建长度单位
- var poundUnit=HKUnit.poundUnit() //创建质量单位
- var unitMultipliedByUnit=footUnit.unitMultipliedByUnit(poundUnit) //相乘得到的复合单位
- var myForce=HKQuantity(unit: unitMultipliedByUnit, doubleValue: 100)
- println("汽车中发电机的扭矩为:\(myForce)")
- }
- ……
- }
此时运行程序,会看到如下的效果。
- 汽车中发电机的扭矩为:100 lb·ft
HealthKit的相除得到的复合数据
在数学计算中,我们常常会遇到m/s这样的单位。这种单位是由两个单位相除得到的。如果开发者想要在自己的代码中使用这种单位。首先需要使用unitDividedByUnit(_:)方法实现对这种单位的创建,其语法形式如下:
- func unitDividedByUnit(_ unit: HKUnit!) -> HKUnit!
其中,参数_ unit用来指定单位,此单位用来作为除数。
【示例2-45:HKUnit-unitDividedByUnit】下面显示用户跑步的速度,以“米/秒”为单位。代码如下:
- import UIKit
- import HealthKit
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- let meters = HKUnit.meterUnit() //创建长度单位
- let seconds = HKUnit.secondUnit() //创建时间单位
- let metersPerSecond = meters.unitDividedByUnit(seconds) //相除得到的复合单位
- let speed=HKQuantity(unit: metersPerSecond, doubleValue: 2)
- println("小明跑步的速度为:\(speed)")
- }
- ……
- }
此时运行程序,会看到如下的效果。
- 小明跑步的速度为:2 m/s
HealthKit的单位和整数的次方构成的复合数据
在求体积和面积时,我们都会使用到m3、m2这样单位。这种单位是由单位和整数的次方构成的复合单位。如果开发者想要创建这种单位,就需要使用到unitRaisedToPower(_:)方法,其语法形式如下:
- func unitRaisedToPower(_ power: Int) -> HKUnit!
其中,参数power是一个整数,用来指定次方。
【示例2-46:HKUnit-unitRaisedToPower】下面显示水池的体积,以“立方米”为单位。代码如下:
- import UIKit
- import HealthKit
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- var meters = HKUnit.meterUnit()
- var cubicmeter=meters.unitRaisedToPower(3) //单位和整数的次方构成的复合单位
- var pool=HKQuantity(unit: cubicmeter, doubleValue: 100)
- println("水池的体积为:\(pool)")
- }
- ……
- }
此时运行程序,会看到如下的效果。
- 水池的体积为:100 m^3
HealthKit的倒数构成的复合单位
1/s这个单位为“赫兹”单位,它表示在1秒时间间隔内发生一个周期过程的频率。类似于1/s这种单位就是由一个单位的倒数构成。如果想要在程序中使用这种单位,需要使用到reciprocalUnit()方法。reciprocalUnit()方法的功能就是对单位进行求倒数构成新的复合单位。其语法形式如下:
- func reciprocalUnit() -> HKUnit!
【示例2-47:HKUnit-reciprocalUnit】下面显示在1秒时间间隔内发生一个周期过程的频率,以“1/秒”为单位。代码如下:
- import UIKit
- import HealthKit
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- var seconds = HKUnit.secondUnit()
- var secondsInverse = seconds.reciprocalUnit() //由倒数构成的复合单位
- var frequency=HKQuantity(unit: secondsInverse, doubleValue: 50)
- println("在1秒时间间隔内发生一个周期过程的频率为:\(frequency)")
- }
- ……
- }
此时运行程序,会看到如下的效果。
- 在1秒时间间隔内发生一个周期过程的频率为:50 1/s
本文选自:HealthKit开发快速入门教程大学霸资料,转载请注明出处,尊重技术尊重IT人!
HealthKit开发教程之HealthKit的复合数据的更多相关文章
- HealthKit开发教程之HealthKit的主要类型数据
HealthKit开发教程之HealthKit的主要类型数据 在HealthKit中,我们将最常用到的数据称之为主要数据.主要数据基本上有三种:长度类型的数据.质量类型的数据.能量类型的数据.本节将主 ...
- HealthKit开发教程之HealthKit的辅助数据
HealthKit开发教程之HealthKit的辅助数据 在HealthKit中除了主要数据之外,还有6个辅助数据分别为:体积类型数据.压力类型数据.时间类型数据.温度类型数据.标量类型数据和电导率类 ...
- HealthKit开发快速入门教程之HealthKit数据的操作
HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知道 ...
- HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID
HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...
- HealthKit开发快速入门教程之HealthKit开发概述简介
HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为“He ...
- Xamarin Anroid开发教程之Anroid开发工具及应用介绍
Xamarin Anroid开发教程之Anroid开发工具及应用介绍 Xamarin开发Anroid应用介绍 如今智能手机已经盛行了好几年,而针对这些智能手机的软件开发也变得异常火热.但是在Andro ...
- AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码
AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码 添加Watch应用对象时新增内容介绍 Watch应用对象添加到创建的项目中后,会包含两个部分:Watch App 和 Wa ...
- iOS 9应用开发教程之ios9中实现按钮的响应
iOS 9应用开发教程之ios9中实现按钮的响应 IOS9实现按钮的响应 按钮主要是实现用户交互的,即实现响应.按钮实现响应的方式可以根据添加按钮的不同分为两种:一种是编辑界面添加按钮实现的响应:另一 ...
- iOS 9应用开发教程之ios9的视图
iOS 9应用开发教程之ios9的视图 了解IOS9的视图 在iPhone或者iPad中,用户看到的和摸到的都是视图.视图是用户界面的重要组成元素.本节将主要讲解ios9视图的添加.删除以及位置和大小 ...
随机推荐
- GNU make 升级
网上下载新版本的make文件后 在make目录下 ./configure make make install mv make /opt/mv_pro_5.0.0/montavista/common/b ...
- XML做下拉列表
5-18X.php主页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...
- js打印(控件)及多种方式
非常好用的LODOP打印控件 Lodop打印控件简单使用方法 1.安装. 2.调用LodopFuncs.js文件. 3.增加OBJECT对象 <script language="jav ...
- 华为2013校招之哈工大威海 上机试题之一:报数问题:设有N 个人围坐一圈并按顺时针方向从1 到N 编号,从第S个人开始进行1 到M报数,报 数到第 M个人时,此人出圈,再从他的下一个人重新开始1 到 M的报数,如此进行下去直 到所有的人都出圈为止。现要打印出出圈次序。
1. 报数游戏 问题描述: 设有N 个人围坐一圈并按顺时针方向从1 到N 编号,从第S个人开始进行1 到M报数,报 数到第 M个人时,此人出圈,再从他的下一个人重新开始1 到 M的报数,如此进行下去 ...
- virgo虚拟桌面
转载: http://www.appinn.com/virgo-virtual-desktop-for-windows/ virgo 是一款 Windows 下的极简虚拟桌面,源程序自身只有 7KB, ...
- ZeroMQ(java)中的数据流SessionBase与SocketBase
前面的文章中已经比较的清楚了ZeroMQ(java)中如何在底层处理IO, 通过StreamEngine对象来维护SelectableChannel对象以及IO的事件回调,然后通过Poller对象来维 ...
- 前端 解决swiper js 手动滑动一下后不能自动播放
用户操作swiper之后,是否禁止autoplay.默认为true:停止.如果设置为false,用户操作swiper之后自动切换不会停止,每次都会重新启动autoplay.操作包括触碰,拖动,点击pa ...
- 【Django】如何按天 小时等查询统计?
代码: from django.db import connection from django.db.models import Sum,Count #alarm_sum_group_items = ...
- mysql show
1.show命令语法 SHOW {BINARY | MASTER} LOGS SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset, ...
- codeforces B.Fence 解题报告
题目链接:http://codeforces.com/problemset/problem/363/B 题目意思:给定整数n和k,需要从n个数中找出连续的k个数之和最小,输出这连续的k个数中的第一个数 ...