HealthKit開發教程之HealthKit的複合數據

HealthKit開發教程之HealthKit的複合數據

複合數據就是複合單位和值構成的數據。所謂複合單位就是由單位進行乘法、除法等獲得的單位,如m/slb·ft等就是複合單位。本節將針對這些複合數據進行講解。ide

HealthKit的相乘獲得的複合數據

在物理學中咱們可能接觸過相似lb·ft(扭矩單位,扭矩是使物體發生轉動的一種特殊的力矩。)這樣的單位。這種單位咱們能夠看作是兩個單位相乘獲得的複合單位。開發者若是想要在本身的程序中使用這種複合單位,首先須要對這種單位進行建立。建立這種單位須要使用到unitMultipliedByUnit(_:)方法,其語法形式以下:spa

  • func unitMultipliedByUnit(_ unit: HKUnit!) -> HKUnit!orm

其中,參數unit:用來指定被乘的單位。教程

【示例2-44HKUnit-unitMultipliedByUnit】下面顯示汽車中發電機的扭矩,以「磅.英尺」爲單位。代碼以下:ip

  • import UIKitci

  • import HealthKit開發

  • class ViewController: UIViewController {數學

  •     override func viewDidLoad() {it

  •         super.viewDidLoad()io

  •         // 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-45HKUnit-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的單位和整數的次方構成的複合數據

在求體積和麪積時,咱們都會使用到m3m2這樣單位。這種單位是由單位和整數的次方構成的複合單位。若是開發者想要建立這種單位,就須要使用到unitRaisedToPower(_:)方法,其語法形式以下:

  • func unitRaisedToPower(_ power: Int) -> HKUnit!

其中,參數power是一個整數,用來指定次方。

【示例2-46HKUnit-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-47HKUnit-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人!

相關文章
相關標籤/搜索