gpt4 book ai didi

具有多个参数的 Swift 闭包

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

我正在尝试定义一个带有两个参数的 Swift 闭包,但它抛出了编译错误。我做错了什么?

 var processor: (CMSampleBuffer, CVPixelBuffer) throws -> Void { (sampleBuffer, outputPixelBuffer) in
....
}

编辑:= 缺失,评论中已正确指出。但是现在我试图将这个闭包作为参数传递,它在声明中给出了编译错误:

 func process(_ processor: ((_ sampleBuffer: CMSampleBuffer,  toPixelBuffer:CVPixelBuffer) throws)? = nil) {


}

最佳答案

所以下面的代码似乎是在 Playground 中传递的:

func process(_ processor: ((String, String))? = nil) {

}

我很确定主要问题是您想强制将 throws 作为关键字。我不认为这在任何方面都是可能的,我宁愿建议使用一个看起来或多或少像这样的 Result enum 模式:

enum ProcessResult {
case success(someReturnValue: YourType) // Or no associated value if you just want to know it worked
case failed(anError: Error)
}

通过要求该 block 返回一个 ProcessResult,您可以强制执行您可能会在其他语言中使用 try/catch 的内容。

关于具有多个参数的 Swift 闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52459320/

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