打开一个新的Swift项目并将其添加到ViewController.swift:
private lazy var imagePicker = {
[unowned self] in
let retval = UIImagePickerController()
let selfDelegate = self as! protocol<UIImagePickerControllerDelegate, UINavigationControllerDelegate>
retval.delegate = selfDelegate
retval.allowsEditing = true
return retval
}()
(我们使用协议一致性重新构造self
,因为协议一致性是在类扩展中定义的,以便于阅读。)
这会产生两个错误:
在第一行:
&#39;无主&#39;不能应用于非类类型&#39; ViewController - &gt; () - &gt;的ViewController&#39;
并在最后一行:
无法调用&#39;() - &gt;类型的值_&#39; with argument list()&#39;
这两个错误对我都没有意义。他们是什么意思,我该如何解决它们。
答案 0 :(得分:1)
您必须指定变量的类型:
private lazy var imagePicker: UIImagePickerController = {
这将解决您的两个错误。
编译器在尝试推断类型时感到困惑。关闭可能过于复杂,所有类型推断问题都以奇怪的错误消息结束。