Итак, у меня есть класс с назначенным инициализатором, который принимает значения для каждого хранимого свойства. Все мои сохраненные свойства также имеют значения по умолчанию, поэтому я предполагаю, что этот класс получит init по умолчанию.Почему вызов super.init() вызывает мой init init()
В моем назначенный инициализации я называю super.init()
Проблема заключается в том, если я называю это в конце моей инициализации, он загружает все свойства значения по умолчанию, но если я называю это на начните работу, как я ожидаю.
В книге говорится:
безопасность проверка 1 Назначенного инициализатор должен обеспечить, чтобы все свойства введенного его классом инициализируется перед делегатами до суперкласса инициализатора.
Как уже упоминалось выше, память для объекта рассматривается полностью , как только начальное состояние всех сохраненных им свойств является . Для того чтобы это правило было выполнено, назначенный инициализатор должен убедиться, что все его собственные свойства инициализированы , прежде чем он отключит цепочку.
Так что я не уверен, что все изменилось, или я что-то делаю неправильно?
Код:
class ORQuizViewController: UIViewController {
let imageView: UIImageView = UIImageView(image: nil)
let questionLabel: UILabel = UILabel()
let choicesArray: [BlackWhiteButton] = [BlackWhiteButton]()
let correctAnswer: Int = -1
init(image: UIImage!, question: String, choices: [String], answerIndex: Int) {
super.init()
imageView = UIImageView(image:image)
questionLabel = UILabel()
questionLabel.text = question
var tempChoices = [BlackWhiteButton]()
for choice in choices {
var choiceLabel = BlackWhiteButton()
choiceLabel.setTitle(choice, forState: .Normal)
tempChoices.append(choiceLabel)
}
choicesArray = tempChoices
correctAnswer = answerIndex
}
Являются ли свойства, определенные этим классом, или они унаследованы от суперкласса? – Paulw11
Они определены этим классом, поэтому на основе документа Apple я должен быть инициализирован перед вызовом super. –
Является ли ваш инициализатор помеченным как удобство или это назначенный инициализатор? – Paulw11