【问题标题】:Is it possible to delete a HealthKit entry from my app?是否可以从我的应用程序中删除 HealthKit 条目?
【发布时间】:2017-06-28 17:02:30
【问题描述】:

我正在使用 HealthKit 制作一个应用程序,并想尝试在我的表格视图上添加滑动以删除。我知道有一个healthStore.delete 选项,但这会从 Health 应用程序中删除吗?我怎么知道要从 HealthKit 中删除哪个 HKSample

【问题讨论】:

    标签: ios swift healthkit


    【解决方案1】:

    HKSample 类是一个抽象类。因此,您不应该直接实例化 HKSample 对象。相反,您始终使用 HKSample 的子类之一(HKCategorySampleHKQuantitySampleHKCorrelationHKWorkout 类),其中 HKSampleClass1 将是子类之一。

    healthStore.deleteObject(HKSampleClass1) { (success: Bool, error: NSError?) -> Void in { 
        if success () {
          //success in deletion 
        }
    }}
    

    【讨论】:

      【解决方案2】:

      是的,调用 healthStore.deleteObject() 将从 Health 中删除样本。但是,请记住,您的应用只能删除它保存到 HealthKit 的样本。

      您需要执行查询来检索要显示给用户的样本。您可以使用HKSampleQueryHKAnchoredObjectQuery

      【讨论】:

        【解决方案3】:

        第一步,您需要先在 HKMetadataKeySyncIdentifier 中定义您的特定密钥,然后再将数据保存到 Apple Health。 然后,您可以使用 HKMetadataKeySyncIdentifier 删除特定的健康数据。

        let healthKitStore = HKHealthStore()
        
        // SAVE
        var meta = [String: Any]()
        meta[HKMetadataKeySyncVersion] = 1
        meta[HKMetadataKeySyncIdentifier] = "specific key"
        
        let recordSample = HKQuantitySample(type: type, quantity: quantity, start: date, end: date, metadata: meta)
        healthKitStore.save(bloodGlucoseSample) { success, error in
            if success {
                print("saving record to health success")
            } else {
                print("saving record to health error = \(String(describing: error))")
            }
        }
        
        // DELETE
        let predicate = HKQuery.predicateForObjects(withMetadataKey: HKMetadataKeySyncIdentifier, allowedValues: ["specific key"])
        healthKitStore.deleteObjects(of: bloodGlucoseType, predicate: predicate) { success, _, error in
            if success {
               print("delete health record success")
            } else {
               print("delete health record error = \(String(describing: error))")
            }
        }
        

        【讨论】:

          猜你喜欢
          • 2023-03-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-26
          • 1970-01-01
          • 1970-01-01
          • 2021-08-15
          相关资源
          最近更新 更多