gpt4 book ai didi

swift - 如何在 Swift 中将值传递给完成处理程序?

转载 作者:行者123 更新时间:2023-11-30 12:36:41 25 4
gpt4 key购买 nike

我想将一个整数传递给完成处理程序。因为处理程序是异步的,所以当完成处理程序有机会运行时,计数值可能不准确?我想将 count 的当前值传递给处理程序,以便在调用处理程序时 count 是准确的。我该怎么做?

// Take image
func didPressTakePhoto(){

if let videoConnection = stillImageOutput?.connection(withMediaType: AVMediaTypeVideo){

videoConnection.videoOrientation = AVCaptureVideoOrientation.portrait

count = count + 1

//Capture image. everything in this closure is ASYNCHRONOUS?
stillImageOutput?.captureStillImageAsynchronously(from: videoConnection, completionHandler: {
(sampleBuffer, error) in

//Do something with count...

})
}
}

最佳答案

由于您在此函数中没有声明 count,因此我假设 count 是一个参数。如果是这样,那么使用 self.count ( block 中强制)访问 count 将获得 count 的最新值,即使它在之后发生了变化您调用captureStillImageAsynchronously()

如果有可能 count 可以由多个源同时写入和读取,则应确保它是线程安全的。

关于swift - 如何在 Swift 中将值传递给完成处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42776623/

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