swift 3中的dispatchqueue显示为未parsing的标识符
我正尝试在主线程上asynchronous录制/录制video。 但是,当我调用dispatch.main.async
,我总是得到错误:
use of unresolved identifier DispatchQueue
从WWDC到苹果的文档,我都到处寻找,但我没有看到这种types的弃用证据。
这里是代码:
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类没有任何问题。
这里的赠品是这样的:
self.cameraButton.setTitle("stop recording", forState: [])
这不是Swift 3 。 因此你的文件是一个Swift 2.3文件。 所以没有DispatchQueue这样的东西。 你应该使用
dispatch_async(dispatch_get_main_queue()) { ...
我认为你的框架列表中没有其中之一。 尝试导入其中之一并尝试将DispatchQueue放入您的文件中。
import Foundation import UIKit // Any System Framework
如果您的文件不是Swift文件,或者您的文件是Swift文件,但是顶部没有任何框架,则可能发生这种情况。