2016-12-20 3 views
1

Ich habe auf einigen Seiten gelesen, dass Sie benutzerdefinierte Proben zu HealthKit hinzufügen können, um weitere Messungen zu speichern.Neuen HKQuantityType erstellen

In meinem Fall möchte ich Beschleunigungsmesserdaten von der Apple Watch HealthKit hinzufügen.

Dies ist mein Code

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!") 
     } 
    }) 
} 

Ich möchte eine Probe hinzufügen „acc“ genannt (im Normalfall ein Beispiel hierfür könnte „bloodPreasure“ sein) mit der Einheit „m/s^2“.

Ich bekomme nil auf dataType, also bekomme ich diese Error auf let dataSample = HKQuantitySample(type: dataType!, quantity: dataQuantity, start: date as Date, end: date as Date) Zeile, weil dataType Null ist.

fatal error: unexpectedly found nil while unwrapping an Optional value

Irgendwelche Ideen, wie man das umsetzt? Danke euch allen!

+0

der Fehler ist, weil ich Nil in DataType bekomme, und ich weiß nicht warum, vielleicht mache ich etwas falsch, wenn ich es erstelle .. Ich bekomme den Fehler in 'Let dataSample = HKQuantitySample (Typ: dataType !, Quantity: dataQuantity, start: Datum als Datum, Ende: Datum als Datum) 'weil ich einen Nullwert als Typ – ainovela

+0

eingegeben habe und wie erstelle ich einen neuen Typ? – ainovela

+0

Ja, das möchte ich .. Wissen Sie, wie man ein neues erstellt, das anders ist als das von ios? – ainovela

Antwort

0

Ich glaube für HKQuantityType.quantityType(forIdentifier: müssen wir Identifier zur Verfügung gestellt von Apple wie HKQuantityTypeIdentifier.bodyTemperature. Und dann wird nur ein Objekt von quantityType zurückgegeben.

So erhalten Sie Null in dataType.

Und ich glaube, wir können nicht neue HKQuantityType erstellen, weil Health Store es auch speichern muss, und dieser Teil ist nicht in unserer Kontrolle.

Verwandte Themen