簡體   English   中英

擴展 class 中的 Var 顯示錯誤“擴展不得包含存儲的屬性”

[英]Var in extension class show error “Extensions must not contain stored properties”

因為我有很多變量,我想放入新文件。 當我將 var 移動到擴展中的新文件時,出現錯誤“擴展不得包含存儲的屬性”。 我該如何解決? “清理” var 的最佳方法是什么? 這是我的代碼:

Class:

class ReminderMain: UIViewController {
   override func viewDidLoad() {
      //Do something
   }
}

擴大:

extension ReminderMain {
   var greeting = UILabel()
}

您真正需要的是遵循您的項目的架構,例如MVCMVPMVVM ,這些都是流行的(還有更多)。 這些架構使您能夠清理代碼並維護項目的結構。

現在對於您在上面解釋的場景,您似乎有許多存儲屬性,例如var greeting = UILabel()您可能希望將它們移動到視圖 class 並僅使用一個視圖來設置 controller 的視圖。 這是一個示例(在 MVC 中):

class ViewController: UIViewController {
    let myView = View()
    override func loadView() {
        super.loadView()
        view = myView
        myView.model = Model(greetingText: "My greeting")
    }
}

class View: UIView {
    var model: Model? {
        didSet { greeting.text = model?.greetingText }
    }
    var greeting = UILabel()
    override init(frame: CGRect) {
        super.init(frame: frame)
        addSubview(greeting)
        // add all other sub-views and layout them here
    }
}
struct Model { var greetingText: String }

有關重構 go 的更多詳細信息,請通過更好、更詳細地解釋這一點的教程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM