[英]Swift: unowned cannot be applied to non-class type THETYPE -> () -> THETYPE
打開一個新的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
,因為協議可讀性在類擴展中定義,以提高可讀性。)
這將產生兩個錯誤:
在第一行:
'unown'不能應用於非類類型'ViewController->()-> ViewController'
在最后一行:
無法使用參數列表()調用類型'()-> _'的值
這兩個錯誤對我來說都毫無意義。 它們是什么意思,我該如何解決。
您必須指定變量的類型:
private lazy var imagePicker: UIImagePickerController = {
這將修復您的兩個錯誤。
嘗試推斷類型時,編譯器只是感到困惑。 閉包可能太復雜了,所有類型推斷問題都以奇怪的錯誤消息結尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.