gpt4 book ai didi

Swift 闭包异常处理

转载 作者:行者123 更新时间:2023-11-28 14:11:56 26 4
gpt4 key购买 nike

我有一个这样定义的闭包:

 let processor: (MyBuffer) throws -> MyBuffer { buffer in

let outputBuffer = try? self.processBuffer(self, inputBuffer: buffer)
return outputBuffer

}

self.processBuffer() 如果无法输出有效的非 nil 缓冲区,则会抛出异常。但是 Swift 编译器提示返回类型是可选的。我的问题是处理这种情况的唯一正确方法是强制展开可选的,或者有更好的方法来处理它?<​​/p>

最佳答案

使用 try 而不是 try?。如果 processBuffer 抛出,那么 Uncaught Error 将从您的闭包中抛出。否则,您将返回一个有效的 outputBuffer

let processor: (MyBuffer) throws -> MyBuffer = { buffer in

let outputBuffer = try self.processBuffer(self, inputBuffer: buffer)
return outputBuffer

}

关于Swift 闭包异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52441010/

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