多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > HealthKit開發(fā)快速入門教程之HealthKit數(shù)據(jù)的操作

HealthKit開發(fā)快速入門教程之HealthKit數(shù)據(jù)的操作

來源:程序員人生   發(fā)布時間:2015-05-25 09:34:23 閱讀次數(shù):2656次

?HealthKit開發(fā)快速入門教程之HealthKit數(shù)據(jù)的操作

數(shù)據(jù)的表示

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

2.1  數(shù)據(jù)的操作

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


2.1  睡眠分析

2.1.1  創(chuàng)建數(shù)據(jù)

HealthKit中數(shù)據(jù)都是由單位和值構(gòu)成的。在使用數(shù)據(jù)之前,首先需要對數(shù)據(jù)進行創(chuàng)建。本小節(jié)將講授數(shù)據(jù)創(chuàng)建的兩個步驟:創(chuàng)建單位和創(chuàng)建基于單位的數(shù)據(jù)。

1.創(chuàng)建單位

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

  • convenience init!(fromString string: String!)

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

【示例2⑴HKUnit-init】下面創(chuàng)建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")                                                       //創(chuàng)建單位對象

  •         println(myunit)

  •     }

  • ……

  • }

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

  • m

2.創(chuàng)建基于單位的數(shù)據(jù)

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

  • convenience init!(unit unit: HKUnit!,

  •       doubleValue value: Double)

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

【示例2⑵HKQuantity-init】下面表示某1個人在1段時間內(nèi)所走的路程。代碼以下:

  • 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")                                                //創(chuàng)建長度單位

  •         var mydistance=HKQuantity(unit: myunit, doubleValue: 10)    //創(chuàng)建長度數(shù)據(jù)對象

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

  • }

  • ……

  • }

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

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

2.1.2  判斷、比較數(shù)據(jù)

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

1.判斷單位是不是為空

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

  • func isNull() -> Bool

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

【示例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.判斷數(shù)據(jù)的兼容性

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

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

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

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

  • 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")                                                   //創(chuàng)建1個長度單位

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

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

  •         //判斷兼容

  •         if(distance.isCompatibleWithUnit(unit2)){

  •             println("distanceunit2兼容")

  •         }else{

  •             println("distanceunit2不兼容")

  •         }

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

  • //判斷兼容

  •         if(distance.isCompatibleWithUnit(unit3)){

  •             println("distanceunit3兼容")

  •         }else{

  •             println("distanceunit3不兼容")

  •         }

  • ……

  • }

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

  • distanceunit2兼容

  • distanceunit3不兼容

3.比較數(shù)據(jù)

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

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

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

  • enum NSComparisonResult : Int {

  •     case OrderedAscending

  •     case OrderedSame

  •     case OrderedDescending

  • }

其中,OrderedAscending表示左側(cè)的數(shù)據(jù)小于右側(cè)的數(shù)據(jù);OrderedSame表示兩個數(shù)據(jù)相等;OrderedDescending表示右側(cè)的數(shù)據(jù)小于左側(cè)的數(shù)據(jù)。

【示例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")                                                   //創(chuàng)建1個千米單位

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

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

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

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

  •         var distance4=HKQuantity(unit: unit2, doubleValue: 500)            //創(chuàng)建第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  獲得數(shù)據(jù)

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

1.獲得單位

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

  • var unitString: String! { get }

【示例2⑹HKUnit-unitString】創(chuàng)建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.獲得基于單位的值

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

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

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

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

  • 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")                                                   //創(chuàng)建1

    生活不易,碼農(nóng)辛苦
    如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
    程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 欧美精品a毛片免费观看 | 日韩国产精品99久久久久久 | 日本动漫免费在线观看 | 天天视频官网天天视频在线 | 亚洲精品在线影院 | 日本大黄毛片视频 | 波多野结衣久久精品免费播放 | 亚洲成a人一区二区三区 | 午色| 请看一下欧美一级毛片 | 中文字幕第九页 | 亚洲精品美女国产一区 | 亚洲黄色网址大全 | 午夜久久久久久 | 波多野结衣免费视频观看 | 欧美国产三级 | 一区二区三区四区在线 | 2022久久国产精品免费热麻豆 | 国产成人毛片 | 日本一区二区三区不卡视频中文字幕 | 欧美最猛黑人xxxxwww | 春暖花开亚洲性无区一区二区 | 精品少妇一区二区三区视频 | 欧美亚洲国产日韩 | 国产 | 久而欧洲野花视频欧洲1 | www.久| 牛和人交videos欧美冫3d | 茄子成视频片在线观看 | 欧美日本免费一区二区三区 | 欧美三级一级 | 亚洲欧美日韩高清一区二区三区 | 亚洲国产系列一区二区三区 | 欧美亚洲国产另类 | 国产精品视频第一页 | 最近2019中文字幕免费大全5 | 亚洲国产精品综合一区在线 | 欧美视频一 | 国产亚洲欧洲国产综合一区 | 国产中文字幕视频在线观看 | 国产成人精品久久二区二区 | 久久天天躁狠狠躁夜夜 |