在HealthKit中除了主要數據以外,還有6個輔助數據分別爲:體積類型數據、壓力類型數據、時間類型數據、溫度類型數據、標量類型數據和電導率類型數據。本節將針對這6個輔助數據進行講解。ide
體積,或稱容量、容積,幾何學專業術語,是物件佔有多少空間的量。體積單位能夠用來測量物體的體積。由體積單位和值組成的數據就是體積類型的數據。體積單位能夠分爲:國際體積單位、英制體積單位和美製體積單位。ui
1.國際體積單位spa
體積的國際單位爲「升」,符號爲L。若是想要建立一個以「升」爲單位的單位對象,須要使用到literUnit()方法,其語法形式以下:scala
class func literUnit() -> Self!orm
【示例2-30:HKUnit-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-31:HKUnit-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-32:HKUnit-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-33:HKUnit-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
壓力在物理學方面指垂直做用在物體表面上的力。壓力單位是用於計量壓力的標準。壓力單位和值就組成了壓力類型的數據。壓力單位用兩種,一種是國際壓力單位;另外一種是非國際壓力單位。如下將對這兩種壓力單位進行講解。
1.國際壓力單位
壓力的國際單位爲帕斯卡,可簡稱帕,符號Pa。開發者想要建立以「帕斯卡」爲單位的單位對象須要使用到pascalUnit()方法,其語法形式以下:
class func pascalUnit() -> Self!
【示例2-34:HKUnit-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-35:HKUnit-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-36:HKUnit-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-37:HKUnit-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
時間是測量時間所用的基本單位。時間單位與值就構成了時間類型的數據。時間單位能夠分爲國際時間單位和非國際時間單位兩種。如下就是對它們的詳細介紹。
1.國際時間單位
時間的國際單位爲秒,符號是s。若是想要使用「秒」這個單位,首先須要對以「秒」爲單位的單位對象進行建立,此時須要使用到secondUnit()方法,其語法形式以下:
class func secondUnit() -> Self!
【示例2-38:HKUnit-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-39:HKUnit-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天
溫度(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-40:HKUnit-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
標量(scalar),亦稱「無向量」。有些物理量,只具備數值大小,而沒有方向,部分有正負之分。物理學中,標量(或做純量)指在座標變換下保持不變的物理量。用通俗的說法,標量是隻有大小,沒有方向的量。衡量標量的單位在HealthKit中有兩種:一種是計數的單位;另外一種是百分比的單位。如下就是對這兩個單位的詳細介紹。
1.計數的單位
計數的單位在Healthkit中是最多見到的,如步數。若是想要建立一個計數的單位,須要使用到countUnit()方法,其語法形式以下:
class func countUnit() -> Self!
【示例2-41:HKUnit-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-42:HKUnit-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 %
電導率是一個物理學概念。在介質中,該量與電場強度之積等於傳導電流密度,也能夠稱爲導電率。電導率的單位爲「西門子」。若是開發者想要建立一個以「西門子」爲單位的單位對象,須要使用到siemenUnit()方法,其語法形式以下:
class func siemenUnit() -> Self!
【示例2-43:HKUnit-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人!