Var in extension class 显示错误 "Extensions must not contain stored properties"
Var in extension class show error "Extensions must not contain stored properties"
因为我有很多变量,所以我想放入新文件。当我将 var 移动到扩展名中的新文件时,出现错误 "Extensions must not contain stored properties"。我该如何解决? "Clean up" var 的最佳方式是什么?这是我的代码:
Class:
class ReminderMain: UIViewController {
override func viewDidLoad() {
//Do something
}
}
分机:
extension ReminderMain {
var greeting = UILabel()
}
您真正需要的是遵循您的项目架构,例如 MVC
、MVP
或 MVVM
这些是流行的架构(还有更多)。这些架构使您能够清理代码并维护项目的结构。
现在对于你上面解释的场景,你似乎有很多存储的属性,比如 var greeting = UILabel()
你可能想将它们移动到一个视图中 class 并且只使用一个视图来设置视图的控制器。这是一个示例(在 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 }
有关重构的更多详细信息,请阅读更好、更详细地解释这一点的教程。
因为我有很多变量,所以我想放入新文件。当我将 var 移动到扩展名中的新文件时,出现错误 "Extensions must not contain stored properties"。我该如何解决? "Clean up" var 的最佳方式是什么?这是我的代码:
Class:
class ReminderMain: UIViewController {
override func viewDidLoad() {
//Do something
}
}
分机:
extension ReminderMain {
var greeting = UILabel()
}
您真正需要的是遵循您的项目架构,例如 MVC
、MVP
或 MVVM
这些是流行的架构(还有更多)。这些架构使您能够清理代码并维护项目的结构。
现在对于你上面解释的场景,你似乎有很多存储的属性,比如 var greeting = UILabel()
你可能想将它们移动到一个视图中 class 并且只使用一个视图来设置视图的控制器。这是一个示例(在 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 }
有关重构的更多详细信息,请阅读更好、更详细地解释这一点的教程。