我正在编写一个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:)'
有人能给我解释一下为什么会这样吗?对于父级,我只有一个子级视图控制器。
发布于 2018-06-05 23:57:37
CameraViewController需要在任何地方都是相同的。当我将CameraViewController实例化为cameraViewController时,这需要反映在代码的第二部分中。第二部分应该如下所示:
guard let cameraController = childViewControllers.first as? CameraViewController<AnyObject> else {
fatalError("Check storyboard for missing CameraViewController")
}
cameraViewController = cameraController
发布于 2018-06-05 09:49:04
不能繁殖。这是我的应用程序的单一视图控制器文件中的完整代码:
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
}
}
它编译得很好。
https://stackoverflow.com/questions/50689941
复制相似问题