Я пытаюсь создать базовый скрипт, который будет извлекать мои ежедневные шаги из HealthKit на iOS, однако, когда страница запускается - ничего не происходит. Он должен запросить разрешение на чтение данных HealthKit, и я не могу понять, где я иду не так.

Вот мой код:

import Foundation
import UIKit
import HealthKit
class HealthKitPage: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    class HealthKitManager {
        let HealthStore = HKHealthStore()

        func AuthoriseHealthKit() -> Bool {
            var isEnabled = true

            if HKHealthStore.isHealthDataAvailable() {
                let StepCount = NSSet(object: HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.stepCount))

                let DataTypesToWrite = NSSet(object: StepCount)
                let DataTypesToRead = NSSet(object: StepCount)

                HealthStore.requestAuthorization(toShare: nil, read: (StepCount as! Set<HKObjectType>)) {
                    (success, error) -> Void in
                    isEnabled = success
                }
            }else{
                isEnabled = false
            }

            return isEnabled
        }
    }

Кто-нибудь может предложить какие-либо предложения?

1
Kayleigh 29 Май 2017 в 01:39

2 ответа

Лучший ответ

Я смог решить эту проблему, используя ответ Химали, но мне нужно было конвертировать его в Swift 3, вот мой рабочий файл:

import Foundation
import UIKit
import HealthKit


import UIKit
import HealthKit
class HealthKitPage : UIViewController
{
      let healthStore: HKHealthStore = HKHealthStore()

      override func viewDidLoad()
      {
                var shareTypes = Set<HKSampleType>()

                shareTypes.insert(HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.stepCount)!)



                var readTypes = Set<HKObjectType>()
                readTypes.insert(HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.stepCount)!)


                healthStore.requestAuthorization(toShare: shareTypes, read: readTypes) { (success, error) -> Void in
                          if success {
                                    print("success")
                          } else {
                                    print("failure")
                          }

                          if let error = error { print(error) }


                }





      }
0
Kayleigh 29 Май 2017 в 10:45
import UIKit
import HealthKit
class HealthKitPage : UIViewController
{
 let healthStore: HKHealthStore = HKHealthStore()

 override func viewDidLoad()
 {
     var shareTypes = Set<HKSampleType>()

shareTypes.insert(HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount)!)



        var readTypes = Set<HKObjectType>()
        readTypes.insert(HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount)!)


        healthStore.requestAuthorizationToShareTypes(shareTypes, readTypes: readTypes) { (success, error) -> Void in
            if success {
                print("success")
            } else {
                print("failure")
            }

            if let error = error { print(error) }
        }


}

}
0
Himali Shah 29 Май 2017 в 04:29