我添加这样的样本:
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!")
}
})
当我要删除此示例时,我执行:
store.deleteObject(sample, withCompletion: {(success, error) -> Void in
if(error != nil) {
println("Error deleting sample: \(error.localizedDescription)")
}else{
println("Sample deleted successfully!")
}
})
它返回我:删除示例时出错:找不到对象
每次我使用相同的日期'对于startDate和endDate。
我已尝试使用let sample = HKQuantitySample(type: type, quantity: quantity, startDate: date, endDate: date, metadata: metadata)
,其中元数据为let metadata = [HKMetadataKeyExternalUUID:"\(Int64(date.timeIntervalSince1970))"]
,但也未成功...
答案 0 :(得分:2)
除了Apple的Health应用程序之外,无法删除ApplicationB在ApplicationB中输入的健康数据。
根据Apple的文档,可以删除仅由相应应用程序创建的健康数据。虽然用户具有写入权限,但无法从应用程序中删除其他一些应用程序运行状况数据,但只能从Apple的Health应用程序中删除。
请注意
虽然您的应用只能管理其创建和保存的对象,但用户可以使用Health应用删除他们想要的任何数据。
答案 1 :(得分:1)
我确实得到了Apple的一些帮助,但是我还没有解决它。你的编码方式与我完全相同,但他们告诉我问题是我们正在创建一个新的样本,然后立即尝试删除它。该示例尚不存在,因此返回找不到错误的项目。
需要做的(理论上)是运行HKSampleQuery,然后使用从中返回的对象执行删除。该对象已存在于HealthKit中,可以删除。
希望有所帮助!
编辑:解决了......我发现我的日期/时间戳太严格了。我修改了startDate / endDate以返回MM / DD / YYYY格式并正确删除了样本。希望对你有帮助!