Добавьте данные в аптечку от Apple Watch и iPhone - PullRequest
0 голосов
/ 12 ноября 2018

В настоящее время я работаю над приложением для воды, которое может отправлять информацию в 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 "босс"?

Есть ли кто-нибудь, кто может помочь мне в правильном направлении?

...