gpt4 book ai didi

swift - 如何在 Swift 3.1 中只调用一次函数?

转载 作者:行者123 更新时间:2023-11-28 15:28:12 27 4
gpt4 key购买 nike

我有一个看起来有点像的类:

final class Token {

..........

public enum Result {

case Success()
case Failure(Error)

}

private var successClosure : (() -> Void)?
private var failureClosure : ((Error) -> Void)?

public func completed(withResult result: Token.Result) {

switch result {
case .Success: successClosure?()
case .Failure(let error): failureClosure?(error)
}

}

..........

}

我想强制执行一次调用 completed(withResult:) 的能力。

是否有一种方法可以将上述completed(withResult:) 方法转换为与Swift 3.1 兼容的方法?

最佳答案

您可以声明一个 bool 变量,该变量在函数被调用一次时变为 false

fileprivate var firstCompletionTime = true

public func completed(withResult result: Token.Result) {
guard firstCompletionTime else {
return
}

switch result {
case .Success: successClosure?()
case .Failure(let error): failureClosure?(error)
}

firstCompletionTime = false
}

关于swift - 如何在 Swift 3.1 中只调用一次函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44958691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com