HealthKit開發教程之HealthKit的輔助數據

HealthKit開發教程之HealthKit的輔助數據

HealthKit中除了主要數據以外,還有6個輔助數據分別爲:體積類型數據、壓力類型數據、時間類型數據、溫度類型數據、標量類型數據和電導率類型數據。本節將針對這6個輔助數據進行講解。ide

HealthKit的體積類型數據

體積,或稱容量、容積,幾何學專業術語,是物件佔有多少空間的量。體積單位能夠用來測量物體的體積。由體積單位和值組成的數據就是體積類型的數據。體積單位能夠分爲:國際體積單位、英制體積單位和美製體積單位。ui

1.國際體積單位spa

體積的國際單位爲「升」,符號爲L。若是想要建立一個以「升」爲單位的單位對象,須要使用到literUnit()方法,其語法形式以下:scala

  • class func literUnit() -> Self!orm

【示例2-30HKUnit-literUnit】下面顯示一桶可樂的容量,以「升」爲單位。代碼以下:對象

  • import UIKit教程

  • import HealthKit開發

  • class ViewController: UIViewController {it

  •     override func viewDidLoad() {io

  •         super.viewDidLoad()

  •         // Do any additional setup after loading the view, typically from a nib.

  •         var myUnit=HKUnit.literUnit()

  •         var myVolume=HKQuantity(unit: myUnit, doubleValue: 2.5)

  •         println("一桶可樂的容量爲:\(myVolume)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。

  • 一桶可樂的容量爲:2.5 L

注意:「升」也是能夠添加前綴的,此時須要使用到literUnitWithMetricPrefix(_:)方法,其語法形式以下:

  • class func literUnitWithMetricPrefix(_ prefix: HKMetricPrefix) -> Self!

其中,prefix用來指定一個有效的度量前綴值,這些值就是表2-1中的內容。

【示例2-31HKUnit-literUnitWithMetricPrefix】下面顯示一桶可樂的容量,以「千升」爲單位。代碼以下:

  • 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.literUnitWithMetricPrefix(HKMetricPrefix.Kilo)

  •         var myVolume=HKQuantity(unit: myUnit, doubleValue: 0.0025)

  •         println("一桶可樂的容量爲:\(myVolume)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。

  • 一桶可樂的容量爲:0.0025 kL

2.英制體積單位

英制體積單位有兩種:一種是液體盎司;另外一種是品脫。如下就是對這兩個單位的具體介紹。

1)液體盎司

液體盎司是一種液體的計量單位。1英制液體盎司等於28.41毫升。若是開發者想要建立以「英制液體盎司」爲單位的單位對象,須要使用到fluidOunceImperialUnit()方法,其語法形式以下:

  • class func fluidOunceImperialUnit() -> Self!

2)品脫

品脫是是容量的計量單位。1英制品脫等於20液體盎司。開發者要想建立以「英制品脫」爲單位的單位對象,須要使用到pintImperialUnit()方法,其語法形式以下:

  • class func pintImperialUnit() -> Self!

【示例2-32HKUnit-pintImperialUnit】下面顯示一桶可樂的容量,以「英制液體盎司」和「英制品脫」爲單位。代碼以下:

  • 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 myfluidUnit=HKUnit.fluidOunceImperialUnit()

  •         var myfluidVolume=HKQuantity(unit: myfluidUnit, doubleValue: 88)

  •         println("一桶可樂的容量爲:\(myfluidVolume)")

  •         //建立以「英制品脫」爲單位的數據

  •         var mypintUnit=HKUnit.pintImperialUnit()

  •         var mypintVolume=HKQuantity(unit: mypintUnit, doubleValue: 4.4)

  •         println("一桶可樂的容量爲:\(mypintVolume)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。其中,英制液體盎司被簡寫爲fl_oz_imp;英制品脫被簡寫爲pt_imp

  • 一桶可樂的容量爲:88 fl_oz_imp

  • 一桶可樂的容量爲:4.4 pt_imp

3.美製體積單位

與英制體積單位同樣,美製體積單位也有兩種::一種是液體盎司;另外一種是品脫。如下就是對這兩個單位的具體介紹。

1)液體盎司

美製液體盎司通常使用在美國等地,通常1美製液體盎司等於29.571毫升。開發者想要建立以「美製液體盎司」爲單位的單位對象,須要使用到fluidOunceUSUnit()方法,其語法形式以下:

class func fluidOunceUSUnit() -> Self!

2)品脫

與美製液體盎司同樣,美製品脫通常使用在美國等地。開發者想要建立以「美製品脫」爲單位的單位對象,須要使用到pintUSUnit()方法,其語法形式以下:

  • class func pintUSUnit() -> Self!

【示例2-33HKUnit-pintUSUnit】下面顯示一桶可樂的容量,以「美製液體盎司」和「美製品脫」爲單位。代碼以下:

  • 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 myfluidUnit=HKUnit.fluidOunceUSUnit()

  •         var myfluidVolume=HKQuantity(unit: myfluidUnit, doubleValue: 85)

  •         println("一桶可樂的容量爲:\(myfluidVolume)")

  • //建立以「美製品脫」爲單位的數據

  •         var mypintUnit=HKUnit.pintUSUnit()

  •         var mypintVolume=HKQuantity(unit: mypintUnit, doubleValue: 4.4)

  •         println("一桶可樂的容量爲:\(mypintVolume)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。其中,美製液體盎司被簡寫爲fl_oz_us;美製品脫被簡寫爲pt_us

  • 一桶可樂的容量爲:85 fl_oz_us

  • 一桶可樂的容量爲:4.4 pt_us

HealthKit的壓力類型數據

壓力在物理學方面指垂直做用在物體表面上的力。壓力單位是用於計量壓力的標準。壓力單位和值就組成了壓力類型的數據。壓力單位用兩種,一種是國際壓力單位;另外一種是非國際壓力單位。如下將對這兩種壓力單位進行講解。

1.國際壓力單位

壓力的國際單位爲帕斯卡,可簡稱帕,符號Pa。開發者想要建立以「帕斯卡」爲單位的單位對象須要使用到pascalUnit()方法,其語法形式以下:

  • class func pascalUnit() -> Self!

【示例2-34HKUnit-pascalUnit】下面顯示桌子所承受的壓力,以「帕」爲單位。代碼以下:

  • 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.pascalUnit()

  •         var deskPressure=HKQuantity(unit: myUnit, doubleValue: 500)

  •         println("桌子所承受的壓力爲:\(deskPressure)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。

  • 桌子所承受的壓力爲:500 Pa

注意:在「帕斯卡」的前面也能夠添加前綴,使其造成「千帕」等。爲「帕斯卡」添加前綴須要使用到pascalUnitWithMetricPrefix(_:),其語法形式以下:

  • class func pascalUnitWithMetricPrefix(_ prefix: HKMetricPrefix) -> Self!

其中,prefix用來指定一個有效的度量前綴值,這些值就是表2-1中的內容。

【示例2-35HKUnit-pascalUnitWithMetricPrefix】下面顯示桌子所承受的壓力,以「千帕」爲單位。代碼以下:

  • 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.pascalUnitWithMetricPrefix(HKMetricPrefix.Kilo)

  •         var deskPressure=HKQuantity(unit: myUnit, doubleValue: 0.5)

  •         println("桌子所承受的壓力爲:\(deskPressure)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。

  • 桌子所承受的壓力爲:0.5 kPa

2.非國際壓力單位

除了國際單位外,壓力中還有3個常使用到的單位分別爲:毫米汞柱、釐米水柱、大氣壓強。這3個壓力單位並不是國際單位。如下是對這3個單位的詳細講解。

1)毫米汞柱

毫米汞柱即毫米水銀柱(mmHg),是直接用水銀柱高度的毫米數表示壓強、壓力值的單位。若是想要在你的程序中建立一個以「毫米汞柱」爲單位的單位對象,須要使用到millimeterOfMercuryUnit()方法,其語法形式以下:

  • class func millimeterOfMercuryUnit() -> Self!

2)釐米水柱

釐米水柱是直接用水柱高度的釐米數表示壓強、壓力值的單位。若是想要在你的程序中建立一個以「釐米水柱」爲單位的單位對象,須要使用到centimeterOfWaterUnit()方法,其語法形式以下:

  • class func centimeterOfWaterUnit() -> Self!

【示例2-36HKUnit-centimeterOfWaterUnit】下面顯示桌子所承受的壓力,以「毫米汞柱」和「釐米水柱」爲單位。代碼以下:

  • 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 mymillimeterOfMercuryUnit=HKUnit.millimeterOfMercuryUnit()

  •         var deskmillimeterOfMercuryPressure=HKQuantity(unit: mymillimeterOfMercuryUnit, doubleValue: 5)

  •         println("桌子所承受的壓力爲:\(deskmillimeterOfMercuryPressure)")

  • //建立以「釐米水柱」爲單位的數據

  •         var mycentimeterOfWaterUnit=HKUnit.centimeterOfWaterUnit()

  •         var deskcentimeterOfWaterPressure=HKQuantity(unit: mycentimeterOfWaterUnit, doubleValue: 5)

  •         println("桌子所承受的壓力爲:\(deskcentimeterOfWaterPressure)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。其中,毫米汞柱被簡寫爲mmHg;釐米水柱被簡寫爲cmAq

  • 桌子所承受的壓力爲:5 mmHg

  • 桌子所承受的壓力爲:5 cmAq

3)大氣壓強

大氣壓強是在標準大氣條件下海平面的氣壓,其值爲101.325kPa,是壓強的單位,記做atm。若是想要建立一個以「大氣壓強」爲單位的單位對象,須要使用到atmosphereUnit(),其語法形式以下:

  • class func atmosphereUnit() -> Self!

【示例2-37HKUnit-atmosphereUnit】下面顯示在標準大氣條件下海平面的氣壓,以「大氣壓強」爲單位的數據。代碼以下:

  • 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.atmosphereUnit()

  •         var seaPressure=HKQuantity(unit: myUnit, doubleValue: 5)

  •         println("在標準大氣條件下海平面的氣壓爲:\(seaPressure)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。

  • 在標準大氣條件下海平面的氣壓爲:5 atm

HealthKit的時間類型數據

時間是測量時間所用的基本單位。時間單位與值就構成了時間類型的數據。時間單位能夠分爲國際時間單位和非國際時間單位兩種。如下就是對它們的詳細介紹。

1.國際時間單位

時間的國際單位爲秒,符號是s。若是想要使用「秒」這個單位,首先須要對以「秒」爲單位的單位對象進行建立,此時須要使用到secondUnit()方法,其語法形式以下:

  • class func secondUnit() -> Self!

【示例2-38HKUnit-secondUnit】下面顯示用戶作完家務的所需的時間,以「秒」爲單位。代碼以下:

  • 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.secondUnit()

  •         var dothing=HKQuantity(unit: myUnit, doubleValue: 1200)

  •         println("小紅作完家務的時間爲:\(dothing)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。

  • 小紅作完家務的時間爲:1200 s

注意:開發者能夠使用secondUnitWithMetricPrefix(_:)方法爲「秒」添加前綴,使其能夠成爲比秒更大或者更小的單位。其語法形式以下:

  • class func secondUnitWithMetricPrefix(_ prefix: HKMetricPrefix) -> Self!

2.非國際時間單位

如下是對非國際時間單位的介紹。

1)分鐘

分鐘是表示時間長度的單位,一分鐘等於60秒。若是開發者想要建立一個以「分鐘」爲單位的單位對象,須要使用到minuteUnit()方法,其語法形式以下:

  • class func minuteUnit() -> Self!

2)小時

小時也是時間單位。它不是時間的國際單位制基本單位(時間的國際單位制基本單位是秒),而是與國際單位制基本單位相協調的輔助時間單位。通常1小時等於60分鐘。若是開發者想要建立一個以「小時」爲單位的單位對象,須要使用到hourUnit()方法,其語法形式以下:

  • class func hourUnit() -> Self!

3)天

天和小時同樣,也是時間單位。通常1天等於24小時。若是開發者想要建立一個以「天」爲單位的單位對象,須要使用到dayUnit()方法,其語法形式以下:

  • class func dayUnit() -> Self!

【示例2-39HKUnit-dayUnit】下面實現86400秒與分鐘、小時、天之間的換算。代碼以下:

  • 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 secondUnit=HKUnit.secondUnit()                                   //建立以「秒」爲單位的單位對象

  •         var myData=HKQuantity(unit: secondUnit, doubleValue: 86400)

  •         var minuteUnit=HKUnit.minuteUnit()                                     //建立以「分鐘」爲單位的單位對象

  •         println("86400=\(myData.doubleValueForUnit(minuteUnit))分鐘")

  •         var hourUnit=HKUnit.hourUnit()                                             //建立以「小時」爲單位的單位對象

  •         println("86400=\(myData.doubleValueForUnit(hourUnit))小時")

  •         var dayUnit=HKUnit.dayUnit()                                                  //建立以「天」爲單位的單位對象

  •         println("86400=\(myData.doubleValueForUnit(dayUnit))")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。

  • 86400=1440.0分鐘

  • 86400=24.0小時

  • 86400=1.0

HealthKit的溫度類型數據

溫度(temperature)是表示物體冷熱程度的物理量,微觀上來說是物體分子熱運動的劇烈程度。度只能經過物體隨溫度變化的某些特性來間接測量。用來計量溫度的標準被稱爲溫度單位。溫度單位與值共同構成溫度類型的數據。溫度單位能夠分爲攝氏溫度、華氏溫度、開爾文這3種。如下就是對這3種溫度單位的介紹。

1.攝氏度

攝氏度是目前世界上使用較爲普遍的一種溫度單位。它指在1標準大氣壓下,純淨的冰水混合物的溫度爲0度,水的沸點爲100度,其間平均分爲100份,每一等份爲1度,記做1℃。若是開發者想要建立一個以「攝氏度」爲單位的單位對象,須要使用到degreeCelsiusUnit()方法,其語法形式以下:

  • class func degreeCelsiusUnit() -> Self!

2.華氏度

雖然中國在內的世界上不少國家都使用攝氏度,但世界上也有其餘國家使用華氏度。例如,美國、緬甸和利比里亞使用華氏度,而較少使用攝氏度。通常1華氏度等於-17.2222222攝氏度。若是開發者想要建立一個以「華氏度」爲單位的單位對象,須要使用到degreeFahrenheitUnit()方法,其語法形式以下:

  • class func degreeFahrenheitUnit() -> Self!

3.開爾文

開爾文溫度是以絕對零度做爲計算起點的溫度。開爾文溫度經常使用符號K表示,其單位爲開爾文。通常1開爾文等於-272.15攝氏度。若是開發者想要建立以「開爾文」爲單位的單位對象,須要使用到kelvinUnit()方法,其語法形式以下:

  • class func kelvinUnit() -> Self!

【示例2-40HKUnit-kelvinUnit】以不一樣的溫度單位顯示水的沸點。代碼以下:

  • 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 degreeCelsiusUnit=HKUnit.degreeCelsiusUnit()

  •         var boilingPointOfCelsius=HKQuantity(unit: degreeCelsiusUnit, doubleValue: 100)

  •         println("水的沸點爲:\(boilingPointOfCelsius)")

  •         //建立以「華氏度」爲單位的數據

  •         var degreeFahrenheitUnit=HKUnit.degreeFahrenheitUnit()

  •         var boilingPointOfFahrenhe=HKQuantity(unit:degreeFahrenheitUnit , doubleValue: 212)

  •         println("水的沸點爲:\(boilingPointOfFahrenhe)")

  •         //建立以「開爾文」爲單位的數據

  •         var kelvinUnit=HKUnit.kelvinUnit()

  •         var boilingPointOfkelvin=HKQuantity(unit:kelvinUnit , doubleValue: 373.15)

  •         println("水的沸點爲:\(boilingPointOfkelvin)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。其中,攝氏度被簡寫爲degC;華氏度被簡寫爲degF;開爾文被簡寫爲K

  • 水的沸點爲:100 degC

  • 水的沸點爲:212 degF

  • 水的沸點爲:373.15 K

HealthKit的標量類型數據

標量(scalar),亦稱「無向量」。有些物理量,只具備數值大小,而沒有方向,部分有正負之分。物理學中,標量(或做純量)指在座標變換下保持不變的物理量。用通俗的說法,標量是隻有大小,沒有方向的量。衡量標量的單位在HealthKit中有兩種:一種是計數的單位;另外一種是百分比的單位。如下就是對這兩個單位的詳細介紹。

1.計數的單位

計數的單位在Healthkit中是最多見到的,如步數。若是想要建立一個計數的單位,須要使用到countUnit()方法,其語法形式以下:

  • class func countUnit() -> Self!

【示例2-41HKUnit-countUnit】下面顯示用戶一天所走的步數。代碼以下:

  • 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 myCount=HKUnit.countUnit()

  •         var myWalkCount=HKQuantity(unit: myCount, doubleValue: 1000)

  •         println("小紅一天行走的步數爲:\(myWalkCount)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。其中,count就是就是計數時使用的單位。

  • 小紅一天行走的步數爲:1000 count

2.百分比的單位

百分比是一種表達比例、比率或分數數值的方法,用「%」表示。若是想要建立一個百分比的單位對象,須要使用到percentUnit()方法,其語法形式以下:

  • class func percentUnit() -> Self!

【示例2-42HKUnit-percentUnit】下面顯示今日股票指數上漲幅度。代碼以下:

  • 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.percentUnit()

  •         var myStockMarket=HKQuantity(unit: myUnit, doubleValue: 0.01)

  •         println("今日股票指數上漲\(myStockMarket)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。

  • 今日股票指數上漲0.01 %

HealthKit的電導率類型數據

電導率是一個物理學概念。在介質中,該量與電場強度之積等於傳導電流密度,也能夠稱爲導電率。電導率的單位爲「西門子」。若是開發者想要建立一個以「西門子」爲單位的單位對象,須要使用到siemenUnit()方法,其語法形式以下:

  • class func siemenUnit() -> Self!

【示例2-43HKUnit-siemenUnit】下面顯示工業廢水的電導率。代碼以下:

  • 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.siemenUnit()

  •         var wastewater=HKQuantity(unit: myUnit, doubleValue: 1)

  •         println("工業廢水的電導率爲:\(wastewater)")

  •     }

  • ……

  • }

此時運行程序,會看到以下的效果。其中,西門子的簡寫爲S

  • 工業廢水的電導率爲:1 S

注意:開發者能夠使用siemenUnitWithMetricPrefix(_:)方法爲「西門子」添加前綴,使其能夠成爲比「西門子」更大或者更小的單位。其語法形式以下:

  • class func siemenUnitWithMetricPrefix(_ prefix: HKMetricPrefix) -> Self!

其中,prefix用來指定一個有效的度量前綴值,這些值就是表2-1中的內容。

本文選自:HealthKit開發快速入門教程大學霸資料,轉載請註明出處,尊重技術尊重IT人!

相關文章
相關標籤/搜索