Параметр передачи iOS swift 3
Привет, я хочу упростить мой код, поэтому я поставил следующим образом
private func heightChangedHandler(query: HKObserverQuery!, completionHandler: HKObserverQueryCompletionHandler!, error: Error!) {
// Here you need to call a function to query the height change
DispatchQueue.main.async {
let sampleType = self.setSampleType(identifier: HKQuantityTypeIdentifier.height)
self.getData(sampleType: sampleType, category: "Height")
}
completionHandler()
}
// Эта функция вызовет функцию queryAndObserve
func startObservingHeightChanges() {
self.queryAndObserve(category: "Height", identifier: HKQuantityTypeIdentifier.height, categoryUpdateHandler: self.heightChangedHandler ,frequency: HKUpdateFrequency.immediate)
}
Так в функции queryAndObserve
private func queryAndObserve(category:String,identifier:HKQuantityTypeIdentifier, categoryUpdateHandler: ????,frequency:HKUpdateFrequency){
}
Моя проблема здесь в том, что я не знаю, какой тип данных мне следует предоставить для categoryUpdateHandler
в наблюдаемом AndQuery (). Изначально даю AnyObject
, он хорошо компилируется, но вылетает во время выполнения. Журнал
Не удалось привести значение типа "_SwiftValue" (0x1015fc598) к "(__ObjC.HKObserverQuery, () -> (), Swift.Optional) -> ()" (0x1015fc560). 2017-12-15 14:55:09.235334+0530 Имя приложения [886:238336] Не удалось преобразовать значение типа '_SwiftValue' (0x1015fc598) в '(__ObjC.HKObserverQuery, () -> (), Swift.Optional) -> ()' (0x1015fc560).
Любая идея поможет в полной мере. Спасибо.