Этот код работает:Это показывает «требуется инициализатор инициализации должны быть предусмотрены в подклассе UIControl» Когда я переопределить инициализации (кадр: CGRect)
import UIKit
class wheel: UIControl {
}
Но этот код не будет:
class wheel: UIControl {
override init(frame: CGRect) {
super.init(frame: frame)
}
Он показывает ошибку «Требуется инициализатор init должен быть указан в подкласса из UIControl
« когда я переопределяю init (frame: CGRect), но не init(coder aDecoder: NSCoder)
.
Почему я должен реализовать init(coder aDecoder: NSCoder)
? И почему мне не нужно его реализовывать, если я не реализовал init(frame: CGRect)
?
Я нашел аналогичный пост переполнением стека, но это не объясняет: Swift : Error: 'required' initializer 'init(coder:)' must be provided by subclass of 'UIView'
Отлично, спасибо большое! – allenlinli
Хороший ответ. Но пример кода должен содержать 'init init' вместо' init'. –