2015-12-08 2 views
2

Я пытаюсь подклассифицировать UIView с помощью Swift и дать моему классу init с одним параметром. Требуется инициализатор Init With Coder. На самом деле, я хочу, чтобы я мог заглянуть в файл Nib. Я понимаю, что это вызовет Init With Coder. Есть ли способ, чтобы этот инициализатор вызывался с addl. params, кроме декодера? Прямо сейчас я назначаю значения по умолчанию для переменных экземпляра, как показано ниже, так что код будет скомпилирован.Подкласс UIView with Swift, использование в Nib

class ClassName: UIView { 

    var dimension: Int = { 
     return 5 
    }() 

} 

Мои инициализаторы настроены, как показано ниже.

init(Int: dimension) { 
    self.dimension = dimension 
    super.init(frame: CGRectZero) 
} 

required init?(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 
} 

Верно ли, что если вы инициализировать вид через файл NIB, нет никакого способа, чтобы пройти в любых новых параметров?

ответ

1

Виды, созданные из нити, всегда будут инициализированы с использованием init(coder:).
По этой причине вы должны либо самостоятельно инициализировать все свои переменные соответствующими значениями, либо сделать их необязательными.

var dimension = 0 
Смежные вопросы