Hi I want to simplify my code so I put in following way
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()
}
//This function will call queryAndObserve function
func startObservingHeightChanges() {
self.queryAndObserve(category: "Height", identifier: HKQuantityTypeIdentifier.height, categoryUpdateHandler: self.heightChangedHandler ,frequency: HKUpdateFrequency.immediate)
}
So in queryAndObserve function
private func queryAndObserve(category:String,identifier:HKQuantityTypeIdentifier, categoryUpdateHandler: ????,frequency:HKUpdateFrequency){
}
My problem here is I don't know what data type should I give for categoryUpdateHandler
in observeAndQuery(). Initially I give AnyObject
, it compiles good but crash during runtime.
Log is
Could not cast value of type '_SwiftValue' (0x1015fc598) to '(__ObjC.HKObserverQuery, () -> (), Swift.Optional) -> ()' (0x1015fc560). 2017-12-15 14:55:09.235334+0530 App name[886:238336] Could not cast value of type '_SwiftValue' (0x1015fc598) to '(__ObjC.HKObserverQuery, () -> (), Swift.Optional) -> ()' (0x1015fc560).
Any idea will be help full. Thank you.