HealthKit开发快速入门教程之HealthKit的主要类型数据
HealthKit开发快速入门教程之HealthKit的主要类型数据
在HealthKit中,我们将最常用到的数据称之为主要数据。主要数据基本上有三种:长度类型的数据、质量类型的数据、能量类型的数据。本节将主要对这三种主要数据进行讲解。
长度类型数据
长度单位是指丈量空间距离上的基本单元,是人类为了规范长度而制定的基本单位。而长度单位和数值构成的就是长度类型数据。根据单位的类型不同,该类型可以分为国际长度单位和英制长度单位两种。以下就是对这两种长度单位的介绍。
1.国际长度单位
国际长度单位是“米”为单位的。对于此单位的创建,需要使用到meterUnit()方法,其语法形式如下:
- class func meterUnit() -> Self!
【示例2-8:HKUnit-meterUnit】下面显示用户一天内的行走路程。代码如下:
- 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 unit = HKUnit.meterUnit() //创建米单位
- let distance=HKQuantity(unit: unit, doubleValue: 100)
- println("一天内小明的行走路程为:\(distance)")
- }
- ……
- }
此时运行程序,会看到如下的效果。其中,米被写为m。
- 一天内小明的行走路程为:100 m
注意:国际长度单位“米”可以带有前缀,如“千米”、“厘米等”。对于这些单位的创建需要使用到meterUnitWithMetricPrefix(_:)方法,其语法形式如下:
- class func meterUnitWithMetricPrefix(_ prefix: HKMetricPrefix) -> Self!
其中,prefix用来指定一个有效的度量前缀值,它是一个HKMetricPrefix枚举类型的数据。其语法形式如下:
- enum HKMetricPrefix : Int {
- case None
- case Pico //皮米
- case Nano //纳米
- case Micro //微米
- case Milli //毫米
- case Centi //厘米
- case Deci //分米
- case Deca //十米
- case Hecto //百米
- case Kilo //千米
- case Mega //106米
- case Giga //109米
- case Tera //1012米
- }
其中,成员说明如表2-1所示。
表2-1 HKMetricPrefix成员说明
注意:这里的基本单位是国际单位米(m)。
【示例2-9:HKUnit-meterUnitWithMetricPrefix】下面显示用户一天内的行走路程。代码如下:
- 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 unit = HKUnit.meterUnitWithMetricPrefix(HKMetricPrefix.Kilo)
- let distance=HKQuantity(unit: unit, doubleValue: 100)
- println("一天内小明的行走路程为:\(distance)")
- }
- ……
- }
此时运行程序,会看到如下的效果。其中,千米被写成km。
- 一天内小明的行走路程为:100 km
2.英制长度单位
英制单位是一种源自英国的度量衡单位制。用来度量长度的单位就是英制长度单位。在英制长度单位中为了与国际单位区别,多在单位前加一“英”字,或冠以口字旁称之,如:英里(英哩)、英尺(英呎)、英寸(英吋)等。以下将讲解常用的3个英制长度单位。
(1)英寸
一般1英寸等于2.54厘米。创建以“英寸”为单位的对象,一般需要使用到inchUnit()方法,其语法形式如下:
- class func inchUnit() -> Self!
【示例2-10:HKUnit-inchUnit】下面显示用户一天内的行走路程,此时单位需要使用“英寸”。代码如下:
- 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 unit = HKUnit.inchUnit() //创建英寸单位
- let distance=HKQuantity(unit: unit, doubleValue: 1000)
- println("一天内小明的行走路程为:\(distance)")
- }
- ……
- }
此时运行程序,会看到如下的效果。其中,英寸被简写为in。
- 一天内小明的行走路程为:1000 in
(2)英尺
在英制长度单位中,12英寸等于1英尺。如果要创建以“英尺”为单位的对象,一般需要使用到footUnit()方法,其语法形式如下:
- class func footUnit() -> Self!
【示例2-11:HKUnit-footUnit】下面显示用户一天内的行走路程,此时单位需要使用“英尺”。代码如下:
- 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 unit = HKUnit.footUnit() //创建长度单位
- let distance=HKQuantity(unit: unit, doubleValue: 500)
- println("一天内小明的行走路程为:\(distance)")
- }
- ……
- }
此时运行程序,会看到如下的效果。其中,英尺被简写为ft。
- 一天内小明的行走路程为:500 ft
(3)英里
英里也是英制长度单位中最常使用的单位。如果要创建以“英里”为单位的对象,一般需要使用到mileUnit()方法,其语法形式如下:
- class func mileUnit() -> Self!
【示例2-12:HKUnit-mileUnit】下面显示大巴车一天内行驶的路程,此时单位需要使用“英里”。代码如下:
- 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 unit = HKUnit.mileUnit() //创建英里单位
- let distance=HKQuantity(unit: unit, doubleValue: 5000)
- println("一天内大巴车的行驶路程为:\(distance)")
- }
- ……
- }
此时运行程序,会看到如下的效果。其中,英里被简写为mi。
- 一天内大巴车的行驶路程为:5000 mi
3.长度单位转换
长度单位是可以在单位对象和长度单位值之间进行转换的。当开发者写了一个字符串来描述单位,但是又不知道这个字符串代表什么时,就可以将单位对象转换为长度单位值进行查看。当开发者想写一个以“码”或者是“英里”为单位的对象时,但只知道到单位值而不知道对应的字符串时,可以将长度单位值转换为单位对象就可以了。以下将详细讲解单位对象和长度单位值之间的转换。
(1)单位对象转换为长度单位值
有时我们需要将一个数据中的单位对象转为长度单位值。此时需要使用lengthFormatterUnitFromUnit(_:)方法实现。其语法形式如下:
- class func lengthFormatterUnitFromUnit(_ unit: HKUnit!) -> NSLengthFormatterUnit
其中,unit用来指定一个单位对象。该方法的返回值类型为NSLengthFormatterUnit枚举类型,其语法形式如下:
- enum NSLengthFormatterUnit : Int {
- case Millimeter
- case Centimeter
- case Meter
- case Kilometer
- case Inch
- case Foot
- case Yard
- case Mile
- }
其中成员的含义如表2-2所示。
表2-2 NSLengthFormatterUnit成员说明
【示例2-13:HKUnit-lengthFormatterUnitFromUnit】将单位对象的对应长度单位值进行显示。代码如下:
- 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 myunit=HKUnit(fromString: "mi")
- var myUnitValue=HKUnit.lengthFormatterUnitFromUnit(myunit).rawValue //获取相应的值
- //判断
- if let b=NSLengthFormatterUnit(rawValue: myUnitValue){
- switch b{
- case .Millimeter:
- println("Millimeter")
- case .Centimeter:
- println("Centimeter")
- case .Meter:
- println("Meter")
- case .Kilometer:
- println("Kilometer")
- case .Inch:
- println("Inch")
- case .Foot:
- println("Foot")
- case .Yard:
- println("Yard")
- case .Mile:
- println("Mile")
- default:
- println("其它")
- }
- }
- }
- ……
- }
此时运行程序,会看到如下的效果。
- Mile
(2)长度单位值转为单位对象
在HealthKit中不仅可以将单位对象转换为相应的长度单位值,而且可以将长度单位值转换为单位对象。此时需要使用到init(fromLengthFormatterUnit:)方法,其语法形式如下:
- convenience init!(fromLengthFormatterUnit lengthFormatterUnit: NSLengthFormatterUnit)
其中,lengthFormatterUnit用来指定一个有效的长度单位值。长度单位值的指定可以参考表2-2。
【示例2-14:HKUnit-init(fromLengthFormatterUnit/)】将长度单位值转换为单位对象。代码如下:
- 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 myLengthFormatterUnit=NSLengthFormatterUnit.Kilometer
- var myunit=HKUnit(fromLengthFormatterUnit: myLengthFormatterUnit)
- println(myunit)
- }
- ……
- }
此时运行程序,会看到如下的效果。
- km
2.2.2 质量类型的数据
质量单位用于计量质量的标准。质量单位和值构成的就是质量类型数据。质量单位可以分为国际质量单位和英制质量单位这两种。以下就是对这两种质量单位的介绍。
1.国际质量单位
国际质量单位有克和摩尔两种,以下就是对这两种质量单位的介绍。
(1)克
克作为质量单位,其符号为g。如果想要创建一个以“克”为单位的单位对象,需要使用到gramUnit()方法,其语法形式如下:
- class func gramUnit() -> Self!
【示例2-15:HKUnit-gramUnit】下面显示用户的体重,以“克”为单位。代码如下:
- 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 myUnit=HKUnit.gramUnit() //创建以“克”为单位的单位对象
- var myWeight=HKQuantity(unit: myUnit, doubleValue: 50000)
- println("小红的体重为:\(myWeight)")
- }
- ……
- }
此时运行程序,会看到如下的效果。
- 小红的体重为:50000 g
注意:开发者也可以像国际长度单位“米”一样,为“克”添加前缀,此时需要使用到gramUnitWithMetricPrefix(_:)方法,其语法形式如下:
- class func gramUnitWithMetricPrefix(_ prefix: HKMetricPrefix) -> Self!
其中,prefix用来指定一个有效的度量前缀值,这些值就是表2-1中的内容。
【示例2-16:HKUnit-gramUnitWithMetricPrefix】下面显示用户的体重,以“千克”为单位。代码如下:
- 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 myUnit=HKUnit.gramUnitWithMetricPrefix(HKMetricPrefix.Kilo)
- var myWeight=HKQuantity(unit: myUnit, doubleValue: 50)
- println("小红的体重为:\(myWeight)")
- }
- ……
- }
此时运行程序,会看到如下的效果。其中,千克被简写为kg。
- 小红的体重为:50 kg
(2)摩尔
科学上把含有6.02×1023个微粒的集合体作为一个单位,称为摩尔(mole),简称摩,旧称克分子、克原子。它是国际单位制7个基本单位之一,表示物质的量,符号为mol。创建一个以“摩尔”为单位的对象,需要使用到moleUnitWithMolarMass(_:)方法,其语法形式如下:
- class func moleUnitWithMolarMass(_ gramsPerMole: Double) -> Self!
其中,参数gramsPerMole是一个双精度类型,用来指定被称过项目的摩尔质量(以g/mol为单位)。
【示例2-17:HKUnit-moleUnitWithMolarMass】下面显示Fe即铁的质量。代码如下:
- 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 myUnit=HKUnit.moleUnitWithMolarMass(56)
- println("铁的质量为\(myUnit)")
- }
- ……
- }
此时运行程序,会看到如下的效果。其中,摩尔被简写为mol。
- 铁的质量为mol<56>
注意:“摩尔”也是可以有前缀的。为“摩尔”添加前缀的方法是moleUnitWithMetricPrefix(_:molarMass:)方法,其语法形式如下:
- class func moleUnitWithMetricPrefix(_ prefix: HKMetricPrefix,
- molarMass gramsPerMole: Double) -> Self!
其中,prefix用来指定一个有效的度量前缀值,这些值就是表2-1中的内容。参数gramsPerMole:是一个双精度类型,用来指定被称过项目的摩尔质量(以g/mol为单位)。
【示例2-18:HKUnit-moleUnitWithMetricPrefix】下面显示Fe即铁的质量。代码如下:
- 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 myUnit=HKUnit.moleUnitWithMetricPrefix(HKMetricPrefix.Centi, molarMass: 5600)
- println("铁的质量为\(myUnit)")
- }
- ……
- }
此时运行程序,会看到如下的效果。
- 铁的质量为cmol<5600>
2.英制质量单位
(1)盎司
“盎司”是英制的计量单位。它是国际上通用的黄金计量单位。如果想要创建一个以“盎司”为单位的对象,一般需要使用到ounceUnit()方法,其语法形式如下:
- class func ounceUnit() -> Self!
【示例2-19:HKUnit-ounceUnit】下面显示黄金的质量,以“盎司”为单位。代码如下:
- 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 goldUnit=HKUnit.ounceUnit()
- var goleWeight=HKQuantity(unit: goldUnit, doubleValue: 50)
- println("黄金的质量为\(goleWeight)")
- }
- ……
- }
此时运行程序,会看到如下的效果。其中,盎司被简写为oz。
- 黄金的质量为50 oz
(2)磅
磅是英美制重量单位,一磅合0.45359237公斤。磅(英语:pound)是英国与美国所使用的英制质量单位,简写是lb。如果想要创建一个以“磅”为单位的对象,一般需要使用到poundUnit()方法,其语法形式如下:
- class func poundUnit() -> Self!
【示例2-20:HKUnit-poundUnit】下面显示用户的体重,以“磅”为单位。代码如下:
- 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 myUnit=HKUnit.poundUnit()
- var myWeight=HKQuantity(unit: myUnit, doubleValue: 100)
- println("小红的体重为:\(myWeight)")
- }
- ……
- }
此时运行程序,会看到如下的效果。
- 小红的体重为:100 lb
(3)英石
英石(英文为Stone,缩写st)是不列颠群岛使用的英制质量单位之一,亦被英联邦国家普遍采用。如果想要创建一个以“英石”为单位的对象,一般需要使用到stoneUnit()方法,其语法形式如下:
- class func stoneUnit() -> Self!
【示例2-21:HKUnit-stoneUnit】下面显示用户的体重,以“英石”为单位。代码如下:
- 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 myUnit=HKUnit.stoneUnit()
- var myWeight=HKQuantity(unit: myUnit, doubleValue:10)
- println("小红的体重为:\(myWeight)")
- }
- ……
- }
此时运行程序,会看到如下的效果。
- 小红的体重为:10 st
3.质量单位转换
质量单位和长度单位类似,可以在单位对象和质量单位值之间进行转换。以下将讲解它们之间的转换。
(1)单位对象转换为质量单位值
将单位对象转换为质量单位值需要使用到massFormatterUnitFromUnit(_:)方法,其语法形式如下:
- class func massFormatterUnitFromUnit(_ unit: HKUnit!) -> NSMassFormatterUnit
其中,参数unit用来指定一个单位对象。该方法的返回值类型为NSMassFormatterUnit枚举类型,其语法形式如下:
- enum NSMassFormatterUnit : Int {
- case Gram
- case Kilogram
- case Ounce
- case Pound
- case Stone
- }
其中,成员说明如表2-3所示。
表2-3 NSMassFormatterUnit成员说明
【示例2-22:HKUnit-massFormatterUnitFromUnit】下面将单位对象的对应质量单位值进行显示。代码如下
- 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 myunit=HKUnit(fromString: "kg")
- var myUnitValue=HKUnit.massFormatterUnitFromUnit(myunit).rawValue //获取对应的值
- //判断
- if let myvalue=NSMassFormatterUnit(rawValue: myUnitValue){
- switch myvalue{
- case .Gram:
- println("Gram")
- case .Kilogram:
- println("Kilogram")
- case .Ounce:
- println("Ounce")
- case .Pound:
- println("Pound")
- case .Stone:
- println("Stone")
- default:
- println("其它")
- }
- }
- }
- ……
- }
此时运行程序,会看到如下的效果。
- Kilogram
(2)质量单位值转为单位对象
质量单位值转为单位对象需要使用到init(fromMassFormatterUnit:)方法,其语法形式如下:
- convenience init!(fromMassFormatterUnit massFormatterUnit: NSMassFormatterUnit)
其中,massFormatterUnit用来指定一个有效的质量单位值。质量单位值的指定可以参考表2-3。
【示例2-23:HKUnit-init(fromMassFormatterUnit/)】下面将质量单位值转换为单位对象进行显示。代码如下:
- 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 myMassFormatterUnit=NSMassFormatterUnit.Ounce
- var myunit=HKUnit(fromMassFormatterUnit: myMassFormatterUnit) //转换
- println(myunit)
- }
- ……
- }
此时运行程序,会看到如下的效果。
- oz
2.2.3 能量类型的数据
能量单位是物质运动的一般量度。物质运动有多种形式,表现各异,但可互相转换,表明这些运动有共性,也有内在的统一的量度,即能量单位。能量单位和值就构成了数据。能量单位只有国际能量单位。本小节将讲解国际能量单位以及能量单位的转换。
1.国际能量单位
国际能量单位有3种分别为:焦耳、卡路里、千卡。以下就是对这3种国际能量单位的介绍。
(1)焦耳
焦耳简称“焦”,是为了纪念英国著名物理学家詹姆斯·普雷斯科特·焦耳而创立的。如果要创建一个以“焦耳”为单位的单位对象,需要使用到jouleUnit()方法,其语法形式如下:
- class func jouleUnit() -> Self!
【示例2-24:HKUnit-jouleUnit】下面显示一小时所消耗的能量,以“焦耳”为单位。代码如下:
- 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 myUnit=HKUnit.jouleUnit()
- var myenergy=HKQuantity(unit: myUnit, doubleValue: 1000)
- println("运动1小时所消耗\(myenergy)的能量")
- }
- ……
- }
此时运行程序,会看到如下的效果。其中,焦耳被简写为J。
- 运动1小时所消耗1000 J的能量
注意:“焦耳”也是可以添加前缀的,此时需要使用到jouleUnitWithMetricPrefix(_:)方法,其语法形式如下:
- class func jouleUnitWithMetricPrefix(_ prefix: HKMetricPrefix) -> Self!
其中,prefix用来指定一个有效的度量前缀值,这些值就是表2-1中的内容。
【示例2-25:HKUnit-jouleUnitWithMetricPrefix】下面显示一小时所消耗的能量,以“千焦”为单位。代码如下:
- 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 myUnit=HKUnit.jouleUnitWithMetricPrefix(HKMetricPrefix.Kilo) //创建质量单位
- var myenergy=HKQuantity(unit: myUnit, doubleValue: 1)
- println("运动1小时所消耗\(myenergy)的能量")
- }
- ……
- }
此时运行程序,会看到如下的效果。
- 运动1小时所消耗1 kJ的能量
(2)卡路里
卡路里简称卡,缩写为cal,由英文Calorie音译而来,其定义为在1个大气压下,将1克水提升1摄氏度所需要的热量;卡路里(calorie)是能量单位,现在仍被广泛使用在营养计量和健身手册上。如果要创建一个以“卡路里”为单位的单位对象,需要使用到calorieUnit()方法,其语法形式如下:
- class func calorieUnit() -> Self!
【示例2-26:HKUnit-calorieUnit】下面显示一小时所消耗的能量,以“卡路里”为单位。代码如下:
- 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 myUnit=HKUnit.calorieUnit()
- var myenergy=HKQuantity(unit: myUnit, doubleValue: 500)
- println("运动1小时所消耗\(myenergy)的能量")
- }
- ……
- }
此时运行程序,会看到如下的效果。
- 运动1小时所消耗500 cal的能量
(3)千卡
千卡也叫做大卡,1千卡等于1000卡路里。如果要创建一个以“千卡”为单位的单位对象,需要使用到kilocalorieUnit()方法,其语法形式如下:
- class func kilocalorieUnit() -> Self!
【示例2-27:HKUnit-kilocalorieUnit】下面显示一小时所消耗的能量,以“千卡”为单位。代码如下:
- 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 myUnit=HKUnit.kilocalorieUnit()
- var myenergy=HKQuantity(unit: myUnit, doubleValue: 10)
- println("运动1小时所消耗\(myenergy)的能量")
- }
- ……
- }
此时运行程序,会看到如下的效果。其中,千卡被简写为kcal。
- 运动1小时所消耗10 kcal的能量
2.能量单位的转换
能量单位也可以在单位对象和能量单位值之间进行转换。以下将讲解它们之间的转换。
(1)单位对象转换为能量单位值
将单位对象转换为能量单位值需要使用到energyFormatterUnitFromUnit(_:)方法,其语法形式如下:
- class func energyFormatterUnitFromUnit(_ unit: HKUnit!) -> NSEnergyFormatterUnit
其中,unit用来指定一个单位对象。该方法的返回值类型为NSEnergyFormatterUnit枚举类型,其语法形式如下:
- enum NSEnergyFormatterUnit : Int {
- case Joule
- case Kilojoule
- case Calorie
- case Kilocalorie
- }
其中,成员说明如表2-4所示。
表2-4 NSEnergyFormatterUnit成员对象
【示例2-28:HKUnit-energyFormatterUnitFromUnit】将单位对象的对应能量单位值进行显示。代码如下
- 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 myunit=HKUnit(fromString: "kJ")
- var myUnitValue=HKUnit.energyFormatterUnitFromUnit(myunit).rawValue //获取相应的值
- //判断
- if let myvalue=NSEnergyFormatterUnit(rawValue: myUnitValue){
- switch myvalue{
- case .Joule:
- println("Joule")
- case .Kilojoule:
- println("Kilojoule")
- case .Calorie:
- println("Calorie")
- case .Kilocalorie:
- println("Kilocalorie")
- default:
- println("其它")
- }
- }
- }
- ……
- }
此时运行程序,会看到如下的效果。
- Kilojoule
(2)能量单位值转为单位对象
将能量单位值转换为单位对象需要使用到init(fromEnergyFormatterUnit:)方法,其语法形式如下:
- convenience init!(fromEnergyFormatterUnit energyFormatterUnit: NSEnergyFormatterUnit)
其中,massFormatterUnit用来指定一个有效的质量单位值。质量单位值的指定可以参考表2-4。
【示例2-29:HKUnit-init(fromEnergyFormatterUnit/)】将能量单位值转为单位对象。代码如下:
- 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 myEnergyFormatterUnit=NSEnergyFormatterUnit.Calorie
- var myunit=HKUnit(fromEnergyFormatterUnit: myEnergyFormatterUnit)
- println(myunit)
- }
- ……
- }
此时运行程序,会看到如下的效果。
- cal
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29597077/viewspace-1621924/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29597077/viewspace-1621924/
HealthKit开发快速入门教程之HealthKit的主要类型数据相关推荐
- HealthKit开发快速入门教程之HealthKit数据的操作
HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知 ...
- HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID
HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...
- HealthKit开发快速入门教程之HealthKit开发概述简介
HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为&qu ...
- HealthKit开发快速入门教程大学霸内部教程
HealthKit开发快速入门教程大学霸内部教程 国内第一本HealthKit专向教程.本教程详细讲解iOS中,如何使用HealthKit框架开发健康应用.最后,本教程结合HealthKit ...
- HealthKit开发教程之HealthKit的复合数据
HealthKit开发教程之HealthKit的复合数据 复合数据就是复合单位和值构成的数据.所谓复合单位就是由单位进行乘法.除法等得到的单位,如m/s.lb·ft等就是复合单位.本节将针对这些复合数 ...
- HealthKit开发教程之HealthKit的辅助数据
HealthKit开发教程之HealthKit的辅助数据 在HealthKit中除了主要数据之外,还有6个辅助数据分别为:体积类型数据.压力类型数据.时间类型数据.温度类型数据.标量类型数据和电导率类 ...
- C#开发Unity游戏教程之Unity中方法的参数
C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号"( )",有意义吗?看起来最 ...
- C#开发Unity游戏教程之Scene视图与脚本的使用
C#开发Unity游戏教程之Scene视图与脚本的使用 Unity中Scene视图的快捷操作 Scene视图是开发者开发游戏时,操作最频繁的视图.因为一旦一个游戏对象被添加到游戏的场景中,就需要首先使 ...
- python语言if语句-Python入门教程之if语句的用法
这篇文章主要介绍了Python入门教程之if语句的用法,是Python入门的基础知识,需要的朋友可以参考下 OK分享完毕!需要Python资料的可以加QQ群:832339352 进群免费领取下面资料! ...
- java jni helloword_JNI入门教程之HelloWorld篇
JNI入门教程之HelloWorld篇 来源:互联网 宽屏版 评论 2008-05-31 09:07:11 本文讲述如何使用JNI技术实现HelloWorld,目的是让读者熟悉JNI的机制并编写第 ...
最新文章
- python的sklearn示例_KNN sklearn python实现小示例
- 微信分享转发功能「PHP版」
- 边缘指示函数matlab,matlab图像处理——傅立叶变换边缘提取
- java定义一个方法,返回一个整数数组的元素最小值
- Java匿名内部类里为什么能用外部变量
- CentOS7.4中搭建lnmp环境
- 四种依恋类型_【工具】成人依恋量类型介绍
- Redis实现分布式锁2
- mysql查询触发器_mysql查看所有触发器以及存储过程等操作集合【转】
- 命令行登录防止MySQL密码泄露的几个小妙招。
- Home_W的位运算(位运算+预处理)
- day01 格式化输出和while循环的两个小练习
- java设计模式-State模式
- 二元函数偏导数公式_高等数学六:(3)复合函数与微分性质
- log4j配置详解(非常详细)
- 语法冠词,虚拟语气,形容词排序
- Google Kick Start 2019 C轮 题解
- latex安装后运行报错:系统找不到指定的文件,试试这样吧
- 有关javaSE下载时,环境配置path不成功,在cmd命令中java,javac,java -version出现不是内部或外部命令的现象处理
- 测试开发(社招)面经:度小满
热门文章
- 罗振宇跨年演讲之夜 阿里云护航得到App
- 基于视觉识别的果蔬自动采摘机器人设计 ——LW文档
- xctf攻防世界 MISC高手进阶区 很普通的Disco
- mtk平台开机logo显示发生shift
- 快速解决:你没有权限在此位置中保存文件。请与管理员联系以获得相应权限。
- 推荐几个童趣满满的SVG模版
- AtCoder ABC 243题解
- 蓝桥杯魔方旋转问题c++ ac
- 【每天读一点英文】gnuhpc注释版:The pleasure of reading
- 成都理工大学计算机技术研究生,成都理工大学(专业学位)计算机技术研究生辅导...