日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > HealthKit開發快速入門教程之HealthKit數據的操作

HealthKit開發快速入門教程之HealthKit數據的操作

來源:程序員人生   發布時間:2015-05-25 09:34:23 閱讀次數:2661次

?HealthKit開發快速入門教程之HealthKit數據的操作

數據的表示

HealthKit中,數據是最核心的元素。通過分析數據,人們可以看到相干的健康信息。例如,通過統計步數數據,人們可以知道1天走的步數。本章將主要講授HealthKit數據構成的方式,和如何規范的表達1個數據。

2.1  數據的操作

HealthKit中,數據都是與單位和值組成的,如圖2.1所示。此圖為1個睡眠分析的截圖。在此圖中59m就代表了1個數據。其中m為單位,59為基于單位的數值。本節將講授數據的創建、判斷、比較和獲得等內容。


2.1  睡眠分析

2.1.1  創建數據

HealthKit中數據都是由單位和值構成的。在使用數據之前,首先需要對數據進行創建。本小節將講授數據創建的兩個步驟:創建單位和創建基于單位的數據。

1.創建單位

HealthKit中,為了讓數據具有實際物理意義,所以需要為數據中的值指訂單位。HKUnit提供了便捷方法來創建HealthKit支持的所有基本單位。HKUnit是1個類。當我們要具體的使用它時,就需要對其進行實例化。實例化HKUnit需要使用到init(fromString:)方法。它可以用來對單位進行創建,并且此單位有1個描寫性的字符串,其語法情勢以下:

  • convenience init!(fromString string: String!)

其中,string是1個字符串,用來代表單位。此字符串必須要符合HealthKit所支持的所有基本單位。Healthkit所支持的基本單位如附錄B所示。

【示例2⑴HKUnit-init】下面創建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 myunit=HKUnit(fromString: "m")                                                       //創建單位對象

  •         println(myunit)

  •     }

  • ……

  • }

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

  • m

2.創建基于單位的數據

HKQuantity類存儲了給訂單位的值,此值和單位就構成了數據。和HKUnit類1樣,在使用它時,需要進行實例化。實例化HKQuantity需要使用到init(unit:doubleValue:)方法。它可以用來創建1個quantity(數量)對象。其語法情勢以下:

  • convenience init!(unit unit: HKUnit!,

  •       doubleValue value: Double)

其中,unit用來指定1個單位對象;value用來指定基于單位的值,它是1個雙精度類型的數據。

【示例2⑵HKQuantity-init】下面表示某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 myunit=HKUnit(fromString: "km")                                                //創建長度單位

  •         var mydistance=HKQuantity(unit: myunit, doubleValue: 10)    //創建長度數據對象

  •         println("1段時間后,某人行走的路程為:(mydistance)")   

  • }

  • ……

  • }

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

  • 1段時間后,某人行走的路程為:10 km

2.1.2  判斷、比較數據

比較和判斷是數據處理的基本操作。例如,通過比較的操作,可讓用戶找出1組數據的最大值。本小節將詳細講授數據的判斷和比較。

1.判斷單位是不是為空

很多的單位有如m/s的情況,如果當兩個單位1樣時,此單位就會抵消,變成1個空的單位。為了不這類情況的產生,HealthKit提供了1個isNull()方法。此方法用來判斷創建的單位是不是為空,其語法情勢以下:

  • func isNull() -> Bool

其中,該方法的返回值類型為布爾類型。當Booltrue時,表示創建的單位為空;當Boolfalse時,表示創建的單位不為空。

【示例2⑶HKUnit-isNull】下面判斷給定的單位是不是為空。代碼以下:

  • 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 unit1:HKUnit=HKUnit(fromString: "m/m")

  •         //判斷

  •         if((unit1.isNull()) == true){

  •             println("unit1對象為空")

  •         }else{

  •             println("unit1對象不為空")

  •         }

  •         var unit2=HKUnit(fromString: "m/s")

  •         //判斷

  •         if((unit2.isNull()) == true){

  •             println("unit2對象為空")

  •         }else{

  •             println("unit2對象不為空")

  •         }

  •     }

  • ……

  • }

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

  • unit1對象為空

  • unit2對象不為空

2.判斷數據的兼容性

同類型單位和單位之間是可以進行轉換的,如以米為單位的數據和厘米為單位的數據,以公斤為單位的數據和以克為單位的數據等。而兼容性就是用來判斷數據和提供的單位之間是不是可以進行轉換。在HealthKitisCompatibleWithUnit(_:)方法可以用來對數據的兼容性進行判斷,其語法情勢以下:

  • func isCompatibleWithUnit(_ unit: HKUnit!) -> Bool

其中,unit用來指定1個單位對象。該方法的返回值類型為布爾類型。當Booltrue時,表示quantity對象和提供的單位相兼容;當Boolfalse時,表示quantity對象和提供的單位不兼容。

【示例2⑷HKQuantity-isCompatibleWithUnit】判斷某人行走的路程是不是可以與給定的單位進行轉換。代碼以下:

  • 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 unit1=HKUnit(fromString: "km")                                                   //創建1個長度單位

  •         var distance=HKQuantity(unit: unit1, doubleValue: 10)                          //創建1個長度數據對象

  •         var unit2=HKUnit(fromString: "m")                                                     //創建第2個長度單位

  •         //判斷兼容

  •         if(distance.isCompatibleWithUnit(unit2)){

  •             println("distanceunit2兼容")

  •         }else{

  •             println("distanceunit2不兼容")

  •         }

  •         var unit3=HKUnit(fromString: "s")                                                                //創建1個時間單位

  • //判斷兼容

  •         if(distance.isCompatibleWithUnit(unit3)){

  •             println("distanceunit3兼容")

  •         }else{

  •             println("distanceunit3不兼容")

  •         }

  • ……

  • }

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

  • distanceunit2兼容

  • distanceunit3不兼容

3.比較數據

同簡單的數值1樣,數據也能夠進行比較的。在HealthKit中提供了compare(_:)方法,可以實現數據的比較功能,其語法情勢以下:

  • func compare(_ quantity: HKQuantity!) -> NSComparisonResult

其中,quantity用來指定1個數量對象。該方法的返回值類型為NSComparisonResult枚舉類型,其語法情勢以下:

  • enum NSComparisonResult : Int {

  •     case OrderedAscending

  •     case OrderedSame

  •     case OrderedDescending

  • }

其中,OrderedAscending表示左側的數據小于右側的數據;OrderedSame表示兩個數據相等;OrderedDescending表示右側的數據小于左側的數據。

【示例2⑸HKQuantity-compare】下面對1個人4天的行走距離進行比較。代碼以下:

  • 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 unit1=HKUnit(fromString: "km")                                                   //創建1個千米單位

  •         var distance1=HKQuantity(unit: unit1, doubleValue: 10)               //創建第1天行走距離對象

  •         var unit2=HKUnit(fromString: "m")                                                     //創建1個米單位

  •         var distance2=HKQuantity(unit: unit2, doubleValue: 10000)                 //創建第2天行走距離對象

  •         var distance3=HKQuantity(unit: unit2, doubleValue: 10)               //創建第3天行走距離對象

  •         var distance4=HKQuantity(unit: unit2, doubleValue: 500)            //創建第4天行走距離對象

  •         //比較大小

  •         if(distance1.compare(distance2)==NSComparisonResult.OrderedSame){

  •             println("兩天所走的路程1樣")

  •         }

  •         //比較大小

  •         if(distance3.compare(distance2)==NSComparisonResult.OrderedAscending){

  •             println("2天走的要比第3天走的要多")

  •         }

  •         //比較大小

  •         if(distance4.compare(distance3)==NSComparisonResult.OrderedDescending){

  •             println("3天走的要比第4天走的要少")

  •         }

  •     }

  • ……

  • }

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

  • 兩天所走的路程1樣

  • 2天走的要比第3天走的要多

  • 3天走的要比第4天走的要少

2.1.3  獲得數據

由于數據是由單位和數值組成的。有的時候,需要單獨獲得單位和數值。本小節將主要講授這兩個功能。

1.獲得單位

在創建單位時,我們提到了init(fromString:)方法,它可以用來對單位進行創建,并且此單位有1個描寫性的字符串,unitString屬性的功能就是用來獲得這個描寫性的字符串。其語法情勢以下:

  • var unitString: String! { get }

【示例2⑹HKUnit-unitString】創建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 unit=HKUnit(fromString: "km")

  •         println(unit.unitString)                                                                //獲得字符串

  •     }

  • ……

  • }

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

  • km

2.獲得基于單位的值

有時我們只想查看數據中的數值,而不是全部數據,需要使用到doubleValueForUnit(_:)方法。其語法情勢以下:

  • func doubleValueForUnit(_ unit: HKUnit!) -> Double

其中,unit用來指定1個單位對象。該方法的返回值類型為雙精度類型。

【示例2⑺HKQuantity-doubleValueForUnit】獲得不同單位數據中的值。代碼以下:

  • 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 unit1=HKUnit(fromString: "km")                                                   //創建1

    生活不易,碼農辛苦
    如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
    程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩欧美在线看 | 国产日韩一区二区三区 | 欧美视频导航 | 欧美偷拍视频 | 精品欧美视频 | 欧美日韩国产一区 | 日韩免费在线视频 | 亚洲福利视频一区二区 | 国产第一精品 | 久国久产久精永久网页 | 国产精品精品视频一区二区三区 | 岛国免费视频 | 亚洲国产精品女人久久久 | 国产黄色大片 | jizz在线免费观看 | 国产一级片网站 | 免费的性爱视频 | 日日日操| 99精品国产一区二区青青牛奶 | 青青草网 | 欧美亚洲国产一区 | 亚洲综合久久久 | 久久国产精品区 | 亚洲国产日韩欧美 | 日本一区不卡视频 | 亚洲一区二区三区四区五区午夜 | 国产精品乱码一区二区三区 | 成人欧美一区二区三区视频网页 | 让男人欲仙欲死的床技 | 久久成人精品视频 | 在线免费观看亚洲 | 久久久久久久久久久久久女国产乱 | 成人欧美一区二区三区黑人孕妇 | 国产一二区免费视频 | 香蕉一区 | 亚洲免费在线观看视频 | 亚洲v天堂 | 欧美一区二区免费 | 国产精品久久久久久久久久东京 | 亚洲一区二区三区精品动漫 | 激情视频网站 |