这是我处理授权的代码.我的代码中的某些内容是错误的还是这是一个Xcode错误?
import Foundation import HealthKit class HealthManager { private let healthStore = HKHealthStore() class var sharedInstance: HealthManager { struct Singleton { static let instance = HealthManager() } return Singleton.instance } private var isAuthorized: Bool? = false func authorizeHealthKit(completion: ((_ success: Bool) -> Void)!) { let writableTypes: Set<HKSampleType> = [HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.distanceWalkingRunning)!,HKWorkoutType.workoutType(),HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.stepCount)!,HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.activeEnergyBurned)!,HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.heartRate)!] let readableTypes: Set<HKSampleType> = [HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.distanceWalkingRunning)!,HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.heartRate)!] guard HKHealthStore.isHealthDataAvailable() else { completion(false) return } // Request Authorization healthStore.requestAuthorization(toShare: writableTypes,read: readableTypes) { (success,error) in if success { completion(true) self.isAuthorized = true } else { completion(false) self.isAuthorized = false print("error authorizating HealthStore. You're propably on iPad \(error?.localizedDescription)") } } } }
谢谢你的帮助!
解决方法
A Boolean value that indicates whether the request was processed successfully. This value does not indicate whether permission was actually granted. This parameter is NO if an error occurred while processing the request; otherwise,it is YES.
如果要检查是否有权写入数据,则需要使用authorizationStatus(for :),但请注意,您无法确定读取数据的权限.
This method checks the authorization status for saving data.
To help prevent possible leaks of sensitive health information,your app cannot determine whether or not a user has granted permission to read data. If you are not given permission,it simply appears as if there is no data of the requested type in the HealthKit store. If your app is given share permission but not read permission,you see only the data that your app has written to the store. Data from other sources remains hidden.