init from Storyboard "Этот кодер требует, чтобы замененные объекты возвращались из initWithCoder" Swift - PullRequest
1 голос
/ 23 апреля 2019

Я хочу добавить QuizMangerClass из раскадровки.

Однако я получаю ошибку "Этот кодер требует, чтобы замененные объекты возвращались из initWithCoder".

private var quizManagerClass: QuizManagerProtocol

init(quizManager: QuizManagerProtocol) {
    self.quizManagerClass = quizManager
    super.init(nibName: nil, bundle: nil)
}

public init?(coder aDecoder: NSCoder, quizManager: QuizManagerProtocol){
    self.quizManagerClass = quizManager
    super.init(coder: aDecoder)
}

// called from SB
convenience required init?(coder aDecoder: NSCoder) {
    self.init(coder: aDecoder, quizManager: QuizManagerMultiton.createQuizManager())
}

Другие вопросы по SOобратитесь к розеткам на раскадровке, ячейкам и прочим мелочам, которые вообще не относятся к этой проблеме.

Я хочу иметь возможность инициализировать QuizManager, чтобы его можно было вводить во время тестирования, и продолжать выдавать то же самоеошибка.

Какое решение?

Мой текущий код здесь: https://github.com/stevencurtis/quizissue

1 Ответ

1 голос
/ 23 апреля 2019

Я заработал, уменьшив две единицы с

required init?(coder aDecoder: NSCoder) {
  self.quizManagerClass = QuizManagerMultiton.createQuizManager()

  super.init(coder: aDecoder)
}

Кроме того, я думаю, что ваш код не выполняется, потому что QuizManager должен быть инстанцируемым из NSCoder.

"Этот кодер требует, чтобы замененные объекты возвращались из initWithCoder"

Редактировать: опечатки

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