示例 AVCAM - Swift Xcode v9

Posted

技术标签:

【中文标题】示例 AVCAM - Swift Xcode v9【英文标题】:Sample AVCAM - Swift Xcode v9 【发布时间】:2017-08-22 05:20:06 【问题描述】:
 @objc func didTapCameraView() 
    self.cameraView.isUserInteractionEnabled = false
    self.spinner.isHidden = false
    self.spinner.startAnimating()

    let settings = AVCapturePhotoSettings()
    let previewPixelType = settings.availablePreviewPhotoPixelFormatTypes.first!
    let previewFormat = [kCVPixelBufferPixelFormatTypeKey as String: previewPixelType, kCVPixelBufferWidthKey as String: 160, kCVPixelBufferHeightKey as String: 160]

    settings.previewPhotoFormat = previewFormat

    if flashControlState == .off 
        settings.flashMode = .off
     else 
        settings.flashMode = .on
    
    cameraOutput.capturePhoto(with: settings, delegate: self)

当我使用 Xcode 9 swift 4 运行应用程序时出现此错误

x86_64 架构的未定义符号: "__T0So22AVCapturePhotoSettingsC12AVFoundation01_abC16SwiftNativeTypesACWP", 参考自: __T014vision_app_dev8CameraVCC06didTapD4ViewyyF in CameraVC.o "__T012AVFoundation39_AVCapturePhotoSettingsSwiftNativeTypesPAAE016availablePreviewc11PixelFormatG0Says6UInt32VGfg", 参考自: CameraVC.o ld 中的 __T014vision_app_dev8CameraVCC06didTapD4ViewyyF:未找到架构 x86_64 的符号:错误:链接器 命令失败,退出代码为 1(使用 -v 查看调用)

【问题讨论】:

遇到同样的错误 ***.com/questions/46202060/… 的副本 【参考方案1】:

尝试改变 let previewPixelType = settings.availablePreviewPhotoPixelFormatTypes.first!

let previewPixelType = settings.__availablePreviewPhotoPixelFormatTypes.first!

***Apple 不小心将一些 AVFoundation API 外部协议设为私有,因此在访问它们的方法之前有 2 个取消标记 _

来源:https://forums.developer.apple.com/thread/86810#259270

来源:Try Sample AVCAM from apple found error

【讨论】:

以上是关于示例 AVCAM - Swift Xcode v9的主要内容,如果未能解决你的问题,请参考以下文章

Xcode/Swift 中的颜色和主题

AvCam iOS 6 中的横向

iOS 4 在自己的代码中使用 AVCam 演示

在 Swift iOS Xcode 中可以使用材料垂直步进形式

使用 Xcode LLDB 控制台在 Swift 中调试闭包

更改完成块内的属性值