快速闭包完成处理程序



我现在有一个函数来确定UILabel的隐藏行为:func shouldHideLabel() -> Bool.

我需要从 Web 请求中检索数据以确定是否隐藏此标签,因此在shouldHideLabel()内部我正在调用函数func webRequestDataIsValid() -> Bool

webRequestDataIsValid()正在执行一个带有闭包的 Web 请求,返回一个对象,并且该对象上有一个变量isValid,该变量返回 true 或 false。

我的目标是等待这个isValid标志返回给我,从webRequestDataIsValid返回 true 或 false,然后使用该返回值从原始shouldHideLabel函数返回。

我在shouldHideLabel内部使用完成处理程序来等待来自webRequestDataIsValid的数据,但我不确定如何等待返回shouldHideLabel内部以完成我的关闭。似乎您无法在闭包内部从函数返回。

任何帮助都非常感谢。谢谢!

我假设您的 Web 请求将包含一个 completionBlock, 试试这个:

func webRequestDataIsValid(completion: @escaping ((Bool) ->Void)) {
whateverYourRequestMethod.response { httpResponse in
let isValid = true // retrieve your boolean
completion(isValid)
)
}

最新更新