2016-09-17 3 views
1

Xcode 7.3とSwift 2. *で次の関数が動作していました:Xcode 8とSwift 3.0に移行した後、次のエラーが発生しましたXcode 8とSwift 3.0への移行時にXcode Healthkitの承認された関数エラーが発生しました

cannot call value of non-function type ((Bool, _ error:NSError?) -> Void)!

 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 
      }) 
    } 
+0

[MarkdownまたはHTMLを使用して投稿をフォーマットするにはどうすればよいですか?](http://stackoverflow.com/help/formatting) – buhtz

答えて

0

は、以下のようにオプションのあなたの完了ハンドラを作ってみましょう:?

完了(成功:boolVal、エラー:エラー)も

をアップルのAPIのdocumentatioから注意することはn:

重要 iOS 10.0以降でリンクされているiOSアプリケーションは、Info.plistファイルに、アクセスする必要のあるデータの種類の使用方法キーを含める必要があります。 HealthKitデータにアクセスして更新するには、それぞれNSHealthShareUsageDescriptionキーとNSHealthUpdateUsageDescriptionキーを含める必要があります。

これが役に立ちます。

関連する問題