Я объявил несколько компонентов пользовательского интерфейса в протоколе.
protocol SomeViewContainer {
var aView: ACustomizedView
...
}
class TestViewController: SomeViewContainer {
var aView: ACustomizedView!
}
Приведенный выше код не пройдет, потому что компилятор не считает, TestViewController
соответствует протоколу.
aView
будет инициализирован после извлечения данных с пульта, поэтому я не могу просто удалить !
.
Кроме того, я бы предпочел ленивую инициализацию, подобную следующей, для некоторых других свойств, объявленных в протоколе.
lazy var aView: UIView! = {
}()
Все еще не удалось скомпилировать.Есть какие-нибудь идеи о том, как согласовать протокол с отложенной инициализацией?