HealthKit開發教程之HealthKit的輔助資料
HealthKit開發教程之HealthKit的輔助資料
在HealthKit中除了主要資料之外,還有6個輔助資料分別為:體積型別資料、壓力型別資料、時間型別資料、溫度型別資料、標量型別資料和電導率型別資料。本節將針對這6個輔助資料進行講解。
HealthKit的體積型別資料
體積,或稱容量、容積,幾何學專業術語,是物件佔有多少空間的量。體積單位可以用來測量物體的體積。由體積單位和值組成的資料就是體積型別的資料。體積單位可以分為:國際體積單位、英制體積單位和美製體積單位。
1.國際體積單位
體積的國際單位為“升”,符號為L。如果想要建立一個以“升”為單位的單位物件,需要使用到literUnit()方法,其語法形式如下:
- class func literUnit() -> Self!
【示例2-30:HKUnit-literUnit】下面顯示一桶可樂的容量,以“升”為單位。程式碼如下:
- 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.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
HealthKit的壓力型別資料
壓力在物理學方面指垂直作用在物體表面上的力。壓力單位是用於計量壓力的標準。壓力單位和值就組成了壓力型別的資料。壓力單位用兩種,一種是國際壓力單位;另一種是非國際壓力單位。以下將對這兩種壓力單位進行講解。
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
HealthKit的時間型別資料
時間是測量時間所用的基本單位。時間單位與值就構成了時間型別的資料。時間單位可以分為國際時間單位和非國際時間單位兩種。以下就是對它們的詳細介紹。
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天
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-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
HealthKit的標量型別資料
標量(scalar),亦稱“無向量”。有些物理量,只具有數值大小,而沒有方向,部分有正負之分。物理學中,標量(或作純量)指在座標變換下保持不變的物理量。用通俗的說法,標量是隻有大小,沒有方向的量。衡量標量的單位在HealthKit中有兩種:一種是計數的單位;另一種是百分比的單位。以下就是對這兩個單位的詳細介紹。
1.計數的單位
計數的單位在Healthkit中是最常見到的,如步數。如果想要建立一個計數的單位,需要使用到countUnit()方法,其語法形式如下:
- class func countUnit() -> Self!
- 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 %
HealthKit的電導率型別資料
電導率是一個物理學概念。在介質中,該量與電場強度之積等於傳導電流密度,也可以稱為導電率。電導率的單位為“西門子”。如果開發者想要建立一個以“西門子”為單位的單位物件,需要使用到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人!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1624215/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HealthKit開發教程之HealthKit的複合資料
- HealthKit開發快速入門教程之HealthKit資料的操作
- HealthKit開發快速入門教程之HealthKit的主要型別資料型別
- HealthKit開發快速入門教程之HealthKit開發概述簡介
- HealthKit開發快速入門教程之HealthKit框架體系建立健康AppID框架APP
- 有關HealthKit的那些事
- iOS-HealthKit裡你未了解的資料型別iOS資料型別
- ?HealthKit開發快速入門教程大學霸內部教程
- [譯]在HealthKit中用 Swift 進行睡眠分析Swift
- 如何藉助 HealthKit 打造一款健身應用?
- 前端開發的工程之美前端
- Android開發 - 儲存輔助類 SharedPreferences 解析Android
- 大資料教程之大資料的影響二大資料
- 請教aop開發工具?
- 軟體工程之開發過程軟體工程
- 如果你想開發iOS應用,先看看這些盈利資料和教訓iOS
- Struts 開發之 血的教訓 (轉)
- 請教資料的返回問題
- git 入門教程之協同開發Git
- PHP自學教程之MySQL資料庫PHPMySql資料庫
- 很少被教的軟體開發基礎
- 向大家請教開發流程的問題
- DESFire開發資料
- 讀資料工程之道:設計和構建健壯的資料系統12開源軟體
- 實戰大資料平臺開發架構講解,免費大資料教學視訊等你來拿大資料架構
- Flutter開發系列教程之網路請求Flutter
- iOS開發教程之手勢識別方法iOS
- 教務管理系統功能開發
- 請教bang 關於開發工具
- 特徵工程之資料預處理(下)特徵工程
- 我的軟體開發中經驗教訓
- 資料庫開發(19)基於物件的資料庫資料庫物件
- 請教有關Struts的資料庫配置資料庫
- 機器學習輔助催化劑設計,天大團隊開發通用且可解釋的描述符機器學習
- 請教老師關於 高併發插入資料問題
- SAP UI5 應用開發教程之八十六 - 動手開發一個最簡單的本地 Mock 資料伺服器試讀版UIMock伺服器
- 資料介面卡工具的開發
- 遊戲開發中的資料表示遊戲開發