2016-12-20 42 views
1

我已閱讀過一些頁面,您可以將自定義樣本添加到HealthKit以便保存另一個測量結果。創建新HKQuantityType

在我的情況下,我想將蘋果手錶的加速計數據添加到HealthKit

這是我的代碼

func saveSample(data:Double, date:NSDate) { 
    let dataType = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.init(rawValue: "acc")) 
    let dataQuantity = HKQuantity(unit: HKUnit.init(from: "m/s^2"), doubleValue: data) 
    let dataSample = HKQuantitySample(type: dataType!, quantity: dataQuantity, start: date as Date, end: date as Date) 
    healthKitStore.save(dataSample, withCompletion: { (success, error) -> Void in 
     if(error != nil) { 
      print("Error saving sample:") 
     } else { 
      print("Sample saved successfully!") 
     } 
    }) 
} 

我想使用單位「米/秒^ 2」添加一個名爲「ACC」樣品(在這種正常情況下,一個示例可以是「bloodPreasure」)。

我得到零的dataType,所以然後我得到Errorlet dataSample = HKQuantitySample(type: dataType!, quantity: dataQuantity, start: date as Date, end: date as Date)行,因爲dataType是零。

fatal error: unexpectedly found nil while unwrapping an Optional value

任何想法,如何實現這個?謝謝大家!

+0

錯誤是因爲我在dataType中得到nil,我不知道爲什麼,也許我在創建它時做錯了什麼..我在'let dataSample = HKQuantitySample(type:dataType !,數量:dataQuantity,開始:日期爲日期,結束:日期爲日期)'因爲我輸入了一個無值作爲 – ainovela

+0

類型,我該如何創建新的類型? – ainovela

+0

是的,這就是我想要的..你知道如何創建一個新的不同的提供的ios? – ainovela

回答

0

我相信對於HKQuantityType.quantityType(forIdentifier:我們需要提供由蘋果提供的標識符,如HKQuantityTypeIdentifier.bodyTemperature。然後只有它會返回一個quantityType對象。

所以你在dataType無法獲得。

我相信我們不能創建新的HKQuantityType,因爲健康商店也必須保存它,而這部分不在我們的控制範圍之內。