HealthKit開發教程之HealthKit的複合資料
HealthKit開發教程之HealthKit的複合資料
複合資料就是複合單位和值構成的資料。所謂複合單位就是由單位進行乘法、除法等得到的單位,如m/s、lb·ft等就是複合單位。本節將針對這些複合資料進行講解。
HealthKit的相乘得到的複合資料
在物理學中我們可能接觸過類似lb·ft(扭矩單位,扭矩是使物體發生轉動的一種特殊的力矩。)這樣的單位。這種單位我們可以看做是兩個單位相乘得到的複合單位。開發者如果想要在自己的程式中使用這種複合單位,首先需要對這種單位進行建立。建立這種單位需要使用到unitMultipliedByUnit(_:)方法,其語法形式如下:
- func unitMultipliedByUnit(_ unit: HKUnit!) -> HKUnit!
其中,引數unit:用來指定被乘的單位。
【示例2-44:HKUnit-unitMultipliedByUnit】下面顯示汽車中發電機的扭矩,以“磅.英尺”為單位。程式碼如下:
- 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 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-45:HKUnit-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的單位和整數的次方構成的複合資料
在求體積和麵積時,我們都會使用到m3、m2這樣單位。這種單位是由單位和整數的次方構成的複合單位。如果開發者想要建立這種單位,就需要使用到unitRaisedToPower(_:)方法,其語法形式如下:
- func unitRaisedToPower(_ power: Int) -> HKUnit!
其中,引數power是一個整數,用來指定次方。
【示例2-46:HKUnit-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-47:HKUnit-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人!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1625377/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS-HealthKit裡你未了解的資料型別iOS資料型別
- [譯]在HealthKit中用 Swift 進行睡眠分析Swift
- 教資複習
- 教資 - 綜合(4)
- 教資 - 綜合(1)
- 教資 - 綜合(6)
- 微商複合模式系統開發(開發系統模式)模式
- 大資料教程之大資料的影響二大資料
- 教資 - 綜合(12)_單選題
- 教資 - 綜合(10)_判斷題
- Hyperledger Fabric 使用 CouchDB 和複雜智慧合約開發
- 從Debezium到Snowflake在生產中構建資料複製的經驗教訓 - Shippeo
- SAP UI5 初學者教程之十九 - SAP UI5 資料型別和複雜的資料繫結UI資料型別
- 複合材料製造中人工智慧混合資料模型的使用人工智慧模型
- FDF智慧合約DAPP複利系統技術開發APP
- Pandas高階教程之:Dataframe的合併
- Redis的資料複製Redis
- 低程式碼開發平臺 讓資料應用不再複雜
- 為鏈上的智慧合約開發者提供全面的工具和資料
- 馬蹄鏈合約互助迴圈複利模式開發DEMO模式
- 讀資料工程之道:設計和構建健壯的資料系統12開源軟體
- 實戰大資料平臺開發架構講解,免費大資料教學視訊等你來拿大資料架構
- vue開發黑科技--利用引用型別的值處理複雜資料的編輯Vue型別
- git 入門教程之協同開發Git
- PostgreSQL資料庫多列複合索引的欄位順序選擇原理SQL資料庫索引
- Spark SQL:JSON資料來源複雜綜合案例實戰SparkSQLJSON
- Spark SQL:Hive資料來源複雜綜合案例實戰SparkSQLHive
- Spark SQL:JDBC資料來源複雜綜合案例實戰SparkSQLJDBC
- Solidity-變數和資料型別[複合型別_1]Solid變數資料型別
- json字串返回的資料有重複的資料JSON字串
- 特徵工程之資料預處理(下)特徵工程
- Python教程之獲取網路資料!Python
- 我的軟體開發中經驗教訓
- 教務管理系統功能開發
- ADAMoracle為鏈上的智慧合約開發者提供全面的工具和資料Oracle
- BSC鏈二二複製互助合約系統開發技術方案
- 「生產事故」MongoDB複合索引引發的災難MongoDB索引
- 馬蹄鏈合約互助迴圈複利模式開發流程丨智慧合約dapp系統開發程式設計示例模式APP程式設計
- 全網最適合入門的物件導向程式設計教程:42 Python常用複合資料型別-collections容器資料型別物件程式設計Python資料型別