我收到此錯誤:即使Swift被設置爲Double,Swift也會給出無效的返回錯誤?
/Users/xxxx/Desktop/xxx/xxx/ViewController.swift:43:38: Unexpected non-void return value in void function
和其他類似這樣即使我的功能設置爲雙倍返還。
這是每個返回中出現此錯誤的函數之一。
func readWeight() -> Double {
let quantityType = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bodyMass)
let weightQuery = HKSampleQuery(sampleType: quantityType!, predicate: nil, limit: 1, sortDescriptors: nil) {
query, results, error in
if (error != nil) {
print(error!)
return 0.0
}
guard let results = results else {
print("No results of query")
return 0.0
}
if (results.count == 0) {
print("Zero samples")
return 0.0
}
guard let bodymass = results[0] as? HKQuantitySample else {
print("Type problem with weight")
return 0.0
}
return bodymass.quantity.doubleValue(for: HKUnit.pound())
}
healthKitStore.execute(weightQuery)
}
的是如何用一個實例:
print(readWeight())
謝謝!
你試圖在你傳遞給'HKSampleQuery'塊返回的東西,那是行不通的,塊呢沒有返回類型。你必須爲你的readWeight方法使用完成塊,或者以某種方式等待完成'HKSampleQuery'。 – luk2302
是'HKSampleQuery'函數是同步的嗎?如果是這樣,你需要使用塊和完成處理程序 –
@FangmingNing剛學會它是異步的,所以我不得不等待值...這個https://stackoverflow.com/a/44701636/4285493似乎工作,但比較它似乎並沒有工作 – WebMaster