Класс не имеет инициализаторов при использовании POP для переменной - PullRequest
0 голосов
/ 04 сентября 2018

Я хочу применить протоколно-ориентированное программирование в одном из моих приложений. Я создал протокол под названием «CustomAnchor», чтобы избавиться от огромного количества команд, необходимых для Autolayout. Но когда я назначаю этот протокол константе, например, profileImage, контроллер получает следующую ошибку:

Класс 'ProfileController' не имеет инициализаторов

На константе я получаю это серое предупреждение:

  1. Сохраненное свойство 'profileImageView' без начального значения предотвращает синтезированные инициализаторы

Вот так выглядит код: (Использование POP внизу)

class ProfileController: UIViewController {

 override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = UIColor.white
    self.navigationItem.title = "Profil"
    self.navigationItem.largeTitleDisplayMode = .never
    fillData()
    setupView()
    confBounds()
 }

 func fillData() {
    profileImageView.image = UIImage(named: "test")
 }

 func setupView() {
    view.addSubview(profileImageView)
 }

 func confBounds() {
    profileImageView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
    profileImageView.anchor(top: self.view.topAnchor, left: nil, bottom: nil, right: nil, paddingTop: 60, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 140, height: 140)
 }

 let profileImageView: UIImageView, CustomAnchor = { () -> UIImageView in
    let pView = UIImageView()
    pView.contentMode = .scaleAspectFill
    pView.clipsToBounds = true
    pView.image = UIImage(named: "test")
    return pView
 }()
}

1 Ответ

0 голосов
/ 04 сентября 2018

Поскольку никто не ответил, я сделал простой обходной путь и передал Свойство Контролеру. Не совсем то, что я хотел (гладкий POP), но это работает ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...