Параметр передачи 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).

Любая идея поможет в полной мере. Спасибо.

0 ответов

Другие вопросы по тегам