[英]Swift Closure Completion Handler
我現在有一個函數可以確定 UILabel 的隱藏行為: func shouldHideLabel() -> Bool
。
我需要從 Web 請求中檢索數據以確定是否隱藏此標簽,因此在shouldHideLabel()
內部我正在調用函數func webRequestDataIsValid() -> Bool
。
webRequestDataIsValid()
正在執行一個帶有閉包的 Web 請求,返回一個對象,該對象上有一個變量isValid
,它返回 true 或 false。
我的目標是等待這個isValid
標志返回給我,從webRequestDataIsValid
返回 true 或 false,然后使用該返回值從原始的shouldHideLabel
函數返回。
我正在使用shouldHideLabel
內部的完成處理程序來等待來自webRequestDataIsValid
的數據,但我不確定如何等待shouldHideLabel
內部的返回以完成關閉。 似乎您無法在閉包內從函數返回。
任何幫助深表感謝。 謝謝!
我假設您的網絡請求將包含一個 completionBlock,試試這個:
func webRequestDataIsValid(completion: @escaping ((Bool) ->Void)) {
whateverYourRequestMethod.response { httpResponse in
let isValid = true // retrieve your boolean
completion(isValid)
)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.