Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 迁移到Xcode 8和Swift 3.0时出现Xcode Healthkit授权功能错误_Ios_Swift_Xcode - Fatal编程技术网

Ios 迁移到Xcode 8和Swift 3.0时出现Xcode Healthkit授权功能错误

Ios 迁移到Xcode 8和Swift 3.0时出现Xcode Healthkit授权功能错误,ios,swift,xcode,Ios,Swift,Xcode,以下函数在Xcode 7.3和Swift 2中工作。*,在迁移到Xcode 8和Swift 3.0后,我在尝试编译时遇到以下错误 无法调用非函数类型的值((Bool,u)error:NSError?-> 无效) func authorized-healthkit(uu-completion:(uu-success:Bool,u-error:NSError?->Void)!){ healthKitStore=HKHealthStore() let typesSet:Set=[ HKQuantity

以下函数在Xcode 7.3和Swift 2中工作。*,在迁移到Xcode 8和Swift 3.0后,我在尝试编译时遇到以下错误

无法调用非函数类型
的值((Bool,u)error:NSError?->
无效)

func authorized-healthkit(uu-completion:(uu-success:Bool,u-error:NSError?->Void)!){
healthKitStore=HKHealthStore()
let typesSet:Set=[
HKQuantityType.quantityType(用于标识符:HKQuantityTypeIdentifier.bodyTemperature)!,
HKQuantityType.quantityType(用于标识符:HKQuantityTypeIdentifier.呼吸器速率)!,
HKQuantityType.quantityType(用于标识符:HKQuantityTypeIdentifier.bloodPressureSystolic)!,
HKQuantityType.quantityType(用于标识符:HKQuantityTypeIdentifier.bloodPressureDiastolic)!,
HKQuantityType.quantityType(用于标识符:HKQuantityTypeIdentifier.bodyMass)!,
HKQuantityType.quantityType(用于标识符:HKQuantityTypeIdentifier.heartRate)!,
HKQuantityType.quantityType(用于标识符:HKQuantityTypeIdentifier.Oxgensaturation)!]
healthKitStore?.requestAuthorization(toShare:typesSet,read:typesSet,completion:{(布尔瓦尔,错误)在

完成(success:boolVal,error:error)//尝试将完成处理程序设置为可选,如下所示:

完成?(成功:布尔瓦尔,错误:错误)

另请注意Apple API文档:

重要的 在iOS 10.0上或之后链接的iOS应用程序必须在其Info.plist文件中包含其需要访问的数据类型的使用说明码,否则将崩溃。要访问和更新HealthKit数据,必须分别包含NSHealthShareUsageDescription和NSHealthUpdateUsageDescription码


希望这能有所帮助。

尝试将完成处理程序设置为可选,如下所示:

完成?(成功:布尔瓦尔,错误:错误)

另请注意Apple API文档:

重要的 在iOS 10.0上或之后链接的iOS应用程序必须在其Info.plist文件中包含其需要访问的数据类型的使用说明码,否则将崩溃。要访问和更新HealthKit数据,必须分别包含NSHealthShareUsageDescription和NSHealthUpdateUsageDescription码

希望这有帮助

     func authorizeHealthKit(_ completion: ((_ success:Bool, _ error:NSError?) -> Void)!) {
            healthKitStore = HKHealthStore()
            let typesSet:Set<HKSampleType> = [
                    HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bodyTemperature)!,
                    HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.respiratoryRate)!,
                    HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bloodPressureSystolic)!,
                    HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bloodPressureDiastolic)!, 
                    HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bodyMass)!, 
                    HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.heartRate)!,
                    HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.oxygenSaturation)!]


                healthKitStore?.requestAuthorization(toShare: typesSet, read: typesSet, completion: { (boolVal, error) in
                    completion(success: boolVal, error: error)   //<-- compile error here
            })
     }