Var в классе расширения показывает ошибку «Расширения не должны содержать сохраненные свойства» - PullRequest
0 голосов
/ 16 июня 2020

Так как у меня много варов, и я хотел бы добавить новый файл. Когда я перемещаю var в новый файл в расширении, я получаю ошибку «Расширения не должны содержать сохраненные свойства». Как я могу это решить? Как лучше всего "очистить" вар? Вот мой код:

Класс:

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

Расширение:

extension ReminderMain {
   var greeting = UILabel()
}

1 Ответ

1 голос
/ 16 июня 2020

Что вам на самом деле нужно, так это следовать архитектуре вашего проекта, например MVC, MVP или MVVM, это популярные (их гораздо больше). Эта архитектура позволяет вам очищать код и поддерживать структуру вашего проекта.

Теперь для вашего сценария, который вы объяснили выше, у вас, похоже, есть много сохраненных свойств, таких как var greeting = UILabel(), вы можете переместить их в класс представления и используйте только одно представление, чтобы установить представление контроллера. Вот пример (в 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 с помощью руководств, которые объясняют это намного лучше и подробно.

...