Recibo un error al finalizar la aplicación debido a una excepción no detectada
'NSUnknownKeyException', reason: '[<KGM_IOS.NotEkle 0x7fcb5ee0cd40> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key notEkleTextView.'.Tengo XIB llamado "notEkle" y dentro de "notEkle" tengo UITextView y el proveedor de XIB es ViewController. Cuando conecto este texto con el controlador, aparece este error. Cargo mi XIB en el controlador como
let notEkleView: UIView = NotEkle().loadNib() as UIViewConecto mi vista de texto con el controlador como
@IBOutlet weak var notEkleTextView: UITextView!No tengo ningún problema antes de conectar UITextview y el controlador.
let notEkleView: UIView = NotEkle().loadNib() as UIView extension UIView { func loadNib() -> UIView { let bundle = Bundle(for: type(of: self)) let nibName = type(of: self).description().components(separatedBy: ".").last! let nib = UINib(nibName: nibName, bundle: bundle) return nib.instantiate(withOwner: self, options: nil).first as! UIView } }Hay varios pasos para definir un XIB y usarlo mediante programación.
Primero debe crear el archivo XIB y el archivo Swift con el mismo nombre.
Diseñe según lo necesite, luego conecte el propietario del archivo con el nombre de clase que definió en el Paso 1.
Debe definir un método de inicialización común y anular ambos inicializadores (con marco y codificador).
Conecte toda la vista en XIB como IBOutlet en la clase Swift.
Implemente el inicializador común de la siguiente manera:
private func commonInitializer() { Bundle.main.loadNibNamed("testView", owner:self, options: nil) addSubview(contentView) contentView.frame = self.bounds contentView.autoresizingMask = [.flexibleHeight,.flexibleWidth] }Para más detalles, puedes consultar este tutorial aquí .
Todo estaba bien para mí, pero aún recibía este error, luego lo resolví
Esto sucede cuando los puntos de venta no están conectados correctamente desde el guión gráfico a un controlador de vista.