簡體   English   中英

Swift 關閉完成處理程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM