Я создаю свой проект полностью в коде, и он был немного запутанным и трудным для чтения, потому что в моем коде было несколько строк, чтобы настроить UIElements ...
, поэтому я попытался вставить эту громоздкую часть в расширение и получил сообщение о том, что сохраненные свойства не могут перейти в расширения, после этого мое решение было следующим ...
weak var centraliseButton: UIButton!
weak var infoButton: UIButton!
weak var seeFireButton: UIButton!
weak var locatManager: CLLocationManager!
weak var mapkitView: MKMapView!
weak var containerViewForInfoButton: UIView!
weak var containerViewForSeeFireButton: UIView!
, а затем я установил функцию evertyhing в файле расширения и вызвал эту функцию внутри viewDidLoad()
, но снова я получил тонны ошибок времени выполнения и нулей, потому что я получаю доступ к себе внутри некоторых из этих свойств, и они lazy var
раньше, поэтому мое последнее решение было следующим:
lazy var centraliseButton: UIButton = UIButton()
lazy var infoButton: UIButton = UIButton()
lazy var seeFireButton: UIButton = UIButton()
lazy var locatManager: CLLocationManager = CLLocationManager()
lazy var mapkitView: MKMapView = MKMapView()
lazy var containerViewForInfoButton: UIView = UIView()
lazy var containerViewForSeeFireButton: UIView = UIView()
и установил все внутри функции в расширении, это сработало, я не получил ошибок, но это выглядит как плохое решение для меня, мне пришлось инициализировать их все с помощью «фиктивного» значения, потому что lazy var требует немедленной инициализации так что ...
Это плохая практика?
Есть ли лучший способ сделать это?
Заранее спасибо за ответы!