【问题标题】:aka 'NSString' has no member - Swift又名 'NSString' 没有成员 - 斯威夫特
【发布时间】:2018-01-28 21:36:53
【问题描述】:

我正在使用 Swift 4 构建一个二维码阅读器,但遇到了一些问题,尤其是这些多行消息:

类型“AVMediaType”(又名“NSString”)没有成员“视频”

类型“AVMetadataObject.ObjectType”(又名“NSString”)没有成员“qr”

类型“AVLayerVideoGravity”(又名“NSString”)没有成员没有成员“resizeAspectFill”

但是,the sample project I've been following 使用与我相同的代码完美构建。

这是我的代码第一部分的示例:

import UIKit
import AVFoundation

@available(iOS 10.0, *)
class ScanViewController: UIViewController {
    
    var captureSession = AVCaptureSession?.self
    var videoPreviewLayer: AVCaptureVideoPreviewLayer?
    
    @IBOutlet weak var previewView: UIView!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        // Get the back-facing camera for capturing videos
        //***ERROR OCCURRS ON THIS LINE***
        let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera], mediaType: AVMediaType.video, position: .back)
        
        guard let captureDevice = deviceDiscoverySession.devices.first else {
            print("Failed to get the camera device")
            return
        }

有谁知道是什么原因造成的以及如何解决?

【问题讨论】:

  • 从您的代码中删除 @available(iOS 10.0, *) 并更改您在 IB 和捕获设备中的部署目标 AVCaptureDevice.default(for: .video)
  • @LeoDabus 您是否建议用它替换以“let deviceDiscoverySession”开头的整行?
  • 是的,只需获取默认相机。我也会选择一个更好的命名do { guard let captureDevice = AVCaptureDevice.default(for: .video), case let input = try AVCaptureDeviceInput(device: captureDevice) else { return } // code ... } catch { print(error) return }
  • 看起来不错,但您能澄清一下“更改 IB 中的部署目标”是什么意思吗?留下完整的答案,以便我将其标记为正确!

标签: ios swift


【解决方案1】:

修好了!

解决方案不是videoAVMediaType 的属性,AVMediaTypeVideo 是它自己的东西。在 iOS 10.2 及更高版本中将其用于 Swift 4。

【讨论】:

    【解决方案2】:

    您的部署目标类似于iOS 10.0AVMediaTypeAVLayerVideoGravity 可从 iOS 11 获得。您应该增加您的部署目标或使用较旧的替代方案,例如 AVMediaTypeVideo

    【讨论】:

      【解决方案3】:

      针对 Swift 4.x 进行如下修复

      改变

      AVMediaType.video
      

      AVMediaTypeVideo
      

      【讨论】:

        猜你喜欢
        • 2015-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-22
        • 2017-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多