2015-01-30 11 views
8

ich hinzufügen Probe wie folgt aus:Löschen hinzugefügt Probe in Health App

var store:HKHealthStore? 
date = NSDate() 
let type = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietaryVitaminA) 
quantity = HKQuantity(unit: HKUnit.gramUnitWithMetricPrefix(.Micro), doubleValue: 100) 
let sample = HKQuantitySample(type: type, quantity: quantity, startDate: date, endDate: date) 
store.saveObject(sample, withCompletion: { (success, error) -> Void in 
      if(error != nil) { 
       println("Error saving sample: \(error.localizedDescription)") 
      }else{ 
       println("Sample saved successfully!") 
      } 
     }) 

Und wenn ich diese Probe löschen möchte ich ausführen:

store.deleteObject(sample, withCompletion: {(success, error) -> Void in 
    if(error != nil) { 
     println("Error deleting sample: \(error.localizedDescription)") 
    }else{ 
     println("Sample deleted successfully!") 
    } 
}) 

Und es gibt mir: Fehler beim Löschen Beispiel: Objekt nicht gefunden Immer benutze ich das gleiche 'Datum' für StartDate und EndDate. Ich habe mit let sample = HKQuantitySample(type: type, quantity: quantity, startDate: date, endDate: date, metadata: metadata) tryed wo Metadaten let metadata = [HKMetadataKeyExternalUUID:"\(Int64(date.timeIntervalSince1970))"], sondern auch erfolglos ...

Antwort

2

Es ist nicht möglich, die Gesundheitsdaten zu löschen, die von ApplicationA in ApplicationB, andere als Apples Health App eingegeben wird.

Gemäß Apple-Dokumentation ist es möglich, die Gesundheitsdaten zu löschen, die nur von der jeweiligen Anwendung erstellt werden. Obwohl die Schreibberechtigung des Benutzers gegeben ist, ist es nicht möglich, einige andere Anwendungsgesundheitsdaten aus Ihrer Anwendung zu löschen. Dies ist jedoch nur aus Apples Health-Anwendung möglich.

Von the documentation:

HINWEIS

Obwohl die App nur die Objekte verwalten kann erstellt und gespeichert, die Benutzer alle Daten löschen können sie die Gesundheit App möchten.

1

Ich habe tatsächlich Hilfe von Apple mit diesem genauen Problem, aber ich habe es noch nicht gelöst. Sie codieren das genauso, wie ich es gemacht habe, aber sie haben mir gesagt, dass das Problem darin besteht, dass wir ein neues Sample erstellen und dann versuchen, es sofort zu löschen. Das Muster existiert noch nicht, daher wird ein Fehler zurückgegeben, der nicht gefunden wurde.

Was (in der Theorie) getan werden muss, ist eine HKSampleQuery auszuführen und dann das Löschen mit dem Objekt durchzuführen, das von diesem zurückgegeben wird. Dieses Objekt existiert bereits in HealthKit und kann gelöscht werden.

Hoffe, dass hilft!

EDIT: Gelöst es ... Ich fand, dass mein Datum/Zeitstempel zu streng war. Ich habe mein StartDate/EndDate geändert, um MM/DD/YYYY Format zurückzugeben und Proben wurden ordnungsgemäß gelöscht. Hoffe das hilft dir!