-2

我正在编写一个 iOS 应用程序并有一个我试图引用的子视图控制器。子视图控制器是父视图控制器的委托。

在父视图控制器的顶部,我有:fileprivate var cameraViewController: CameraViewController<AnyObject>?

viewDidLoad(),我有

guard let cameraController = childViewControllers.first as? CameraViewController else  {
            fatalError("Check storyboard for missing CameraViewController")
        }

        cameraViewController = cameraController

但是,我收到了错误:Ambiguous reference to member 'first(where:)'

谁能向我解释为什么会这样?我只有一个父级的子视图控制器。

4

2 回答 2

0

无法重现。这是我的应用程序的单一视图控制器文件中的全部代码:

import UIKit
class CameraViewController : UIViewController {}
class ViewController: UIViewController {
    fileprivate var cameraViewController: CameraViewController?
    override func viewDidLoad() {
        super.viewDidLoad()
        guard let cameraController = childViewControllers.first as? CameraViewController else  {
            fatalError("Check storyboard for missing CameraViewController")
        }
        cameraViewController = cameraController
    }
}

它编译得很好。

于 2018-06-05T01:49:04.310 回答
0

CameraViewController 需要在任何地方都相同。当我将 cameraViewController 实例化为 CameraViewController 时,需要在代码的第二部分中反映出来。第二部分应如下所示:

guard let cameraController = childViewControllers.first as? CameraViewController<AnyObject> else  {
            fatalError("Check storyboard for missing CameraViewController")
        }

        cameraViewController = cameraController
于 2018-06-05T15:57:37.077 回答