ios - the - Swift, super.init() Debe llamar a un inicializador designado de la superclase ''UIView'' error
swift playground ios (2)
Esta pregunta ya tiene una respuesta aquí:
Soy nuevo con Swift. Heredé un proyecto. Lo vi corriendo en un dispositivo. Sin embargo, cuando compruebo el código y tenía muchos errores. Pude borrar los errores. Sin embargo, me encuentro con este que me está desconcertando. El proyecto también utiliza archivos xib. Aquí está el código.
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect) {
super.init(frame: frame)
}
init(items:NSArray, viewController:AnyObject){
super.init()
//itemsArray = items
itemsArray = items as [AnyObject]
//commonInit(viewController as UIViewController)
commonInit(viewController as! UIViewController)
}
Obtengo el error en el método / función init (items: NSArray, viewController: AnyObject). El error apunta al "super.init ()". Indica "Debe llamar a un inicializador designado de la superclase ''UIView'' error"
He estado buscando, buscando en Google, preguntando a otros y nada ha aparecido. ¿Puedo obtener ayuda para corregir este error, o al menos por qué ocurre este error? Me gustaría entender para poder convertirme en un mejor desarrollador de software.
Edit: Me gustaría agradecer a todos por su comprensión y ayuda. Descubrí que el problema es más grande. Hice los cambios sugeridos en el super.init (cuadro: CGRect). Tuve que cambiar una propiedad de matriz también que estaba afectando a la función init.
Como sugiere el mensaje de error, solo puede llamar al inicializador designado de la superclase.
Para resolver esto necesitas llamar: super.init(frame: frame)
lugar de super.init()
UIView
inicializadores designados por UIView
son:
init(frame: CGRect)
init(coder aDecoder: NSCoder)
Está llamando a super.init()
que es un inicializador heredado de su superclase NSObject
. Utilice uno de esos inicializadores en lugar de lo que sugiere el compilador.