This question already has answers here:
Swift 3.0 unresolved identifier for DispatchQueue

(2 个回答)


4年前关闭。




我正在尝试在主线程上异步拍摄/录制视频。但是,当我调用 dispatch.main.async 时,我总是收到错误消息:
use of unresolved identifier DispatchQueue

从 WWDC 到 Apple 的文档,我到处查看,但没有看到该类型被弃用的证据。

这是代码:
   if !self.cameraEngine.isRecording {
            if let url = CameraEngineFileManager.temporaryPath("video.mp4") {
                self.cameraButton.setTitle("stop recording", forState: [])
                self.cameraEngine.startRecordingVideo(url, blockCompletion: { (url: NSURL?, error: NSError?) -> (Void) in
                    if let url = url {

                        DispatchQueue.main.async {
                            self.cameraButton.setTitle("start recording", for: .normal)
                            CameraEngineFileManager.saveVideo(url, blockCompletion: { (success: Bool, error: Error?) -> (Void) in
                                if success {
                                    let alertController =  UIAlertController(title: "Success, video saved !", message: nil, preferredStyle: .alert)
                                    alertController.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil))
                                    self.present(alertController, animated: true, completion: nil)
                                }
                            })
                        }
                    }
                })
            }
        }
        else {
            self.cameraEngine.stopRecordingVideo()
        }
    }

最佳答案

你可以把

import Foundation

或者
import Dispatch

在代码的开头开始使用 DispatchQueue 类 没有任何问题。

10-08 07:26