В настоящее время я работаю над приложением для воды, которое может отправлять информацию в healtkit с iPhone и Apple Watch.Я успешно настроил авторизацию healtkit и могу отправлять данные в healtkit.
Когда я отправляю данные из Apple Watch в healtkit, все работает нормально, все мои записи данных видны на графике.Странная вещь, когда я добавляю данные с моего iPhone, что график будет перезаписан данными iPhone.Записи часов все еще находятся в «show data»
Когда я добавляю их из своих Apple Watch, они не будут обновлять график, но записи также находятся в «show data».
Я использую файл sharedfiel (HealtKitManager.swift) для авторизации аптечки и функции «AddWater».
import Foundation
import HealthKit
class HealtKitManager: NSObject {
static let sharedInstance = HealtKitManager()
private override init() {}
let healthStore = HKHealthStore()
func authorizeHealthKit(_ completion: @escaping((_ success: Bool, _ error: Error?) -> Void)){
let waterType = HKObjectType.quantityType(forIdentifier: .dietaryWater)!
let allTypes = Set([waterType])
healthStore.requestAuthorization(toShare: allTypes, read: allTypes) { (success, error) in
print("Authorization \(success)")
completion(success, error)
}
}
func addWater(mL : Double){
let quantityType = HKQuantityType.quantityType(forIdentifier: .dietaryWater)
let quantityUnit = HKUnit(from: "mL")
let quantityAmount = HKQuantity(unit: quantityUnit, doubleValue: mL)
let now = Date()
let sample = HKQuantitySample(type: quantityType!, quantity: quantityAmount, start: now, end: now)
let correlationType = HKObjectType.correlationType(forIdentifier: HKCorrelationTypeIdentifier.food)
let waterCorrelationForWaterAmount = HKCorrelation(type: correlationType!, start: now, end: now, objects: [sample])
self.healthStore.save(waterCorrelationForWaterAmount, withCompletion: { (succes, error) in
if (error != nil) {
NSLog("error")
}
})
}
}
в моем ViewController и моем InterfaceController. Я подключил кнопки для записи значения «по умолчанию»в healtkit:
@IBAction func addGlassAction(_ sender: Any) {
healtKitManager.addWater(mL: 100)
}
и
@IBAction func add50ml() {
healtKitManager.addWater(mL: 50)
}
Почему приложение для iPhone "босс"?
Есть ли кто-нибудь, кто может помочь мне в правильном направлении?