xcode modalviewcontroller viewcontroller sigabrt

xcode - presentviewcontroller swift 4



setValue:forUndefinedKey:]: (11)

Como este es el primer resultado de búsqueda para este error, decidí escribir una respuesta para los novatos como yo.

Recibirá este error si tiene Ctrl arrastró las conexiones desde los Botones que generan código en su ViewController y luego borra solo el código sin eliminar la conexión.

Recibí este error porque accidentalmente había agregado algunos botones como Outlets, cuando quería agregarlos como Acciones. Borre el código que se generó, pero las conexiones incorrectas seguían allí.

Para encontrarlos y eliminarlos, vea-> Utilidades-> Mostrar el inspector de conexiones

Luego haga clic en los diferentes botones que tiene y haga clic en la x para eliminar las conexiones defectuosas.

FinalViewWithSending *newView = [[FinalViewWithSending alloc]initWithNibName:@"FinalViewWithSending" bundle:nil]; newView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:newView animated:YES]; //it crashes here with a thread 1 error, SIGABRT error..

Dice:

"Terminating app due to uncaught exception ''NSUnknownKeyException'', reason: ''[<FinalViewWithSending 0x1bef70> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key loginButton.''"

No hay una variable llamada loginButton, así que no estoy seguro de por qué recibo un error ...

Gracias


Está recibiendo el error porque no hay ninguna propiedad llamada loginButton. Revise su archivo .xib. Es casi seguro que hay un enlace defectuoso a un objeto FinalViewWithSending (probable propietario del archivo) que especifica loginButton aunque no exista en el código de clase.


Estoy de acuerdo aquí - Phillip Mills tiene razón.

Alguien mencionó abrir el guión gráfico en un editor de texto, esto no es necesario.

Simplemente haga clic en el guión gráfico, vaya al inspector de conexiones. Si tiene una salida problemática, verá un marcador de exclamación junto a la salida. Bórralo.


Hoy estuve trabajando y presenté este mismo error, usé la respuesta de Phillip Mills fue correcta y tuve algunas etiquetas en un ViewController.xib a las que no se me asignaron enlaces. Tengo cinco enlaces defectuosos. , gracias respuesta de Phillip Mills.


Phillip Mills tiene razón.

La respuesta aquí, para cualquiera que busque, es editar el guión gráfico y eliminar cualquier enlace a la clave no definida especificada. Debe editar el archivo del guión gráfico en un editor externo: haga clic con el botón derecho en la lista del guión gráfico en la jerarquía y luego haga clic en "mostrar en el buscador" o lo que tenga usted. Abra en un editor de texto, elimine dichos enlaces buscando, guarde y regrese a Xcode. No más problema.

Esto sucede cuando elimina algo del controlador de vista incorrectamente.


Probablemente, anteriormente creó el LoginButton, Cmd + Shift + F, encuentra el "LoginButton" y elimina el Outlet de referencia y la reconstrucción.


Puedes probar el modo en que solía arreglar mi setValue:forUndefinedKey:]: problem.


Puedes usar objetos asociados para evitar subclases. En cuanto a setValue: forKey: y setValue: forUndefinedKey :, consulte el archivo de encabezado (NSKeyValueCoding.h) para obtener más información.

De acuerdo con su descripción, busque newView en su generador de interfaces y haga clic derecho en él, verá algo como loginButton que es anormal.


Si tiene localizaciones, busque enlaces defectuosos en todos los guiones gráficos (expanda el guión gráfico para encontrar guiones gráficos localizados).

Esta era mi situación. Estaba buscando malos enlaces en un guión gráfico y estaban en el local.


Vaya al inspector de conexiones de su xib del controlador de vista FinalViewWithSending view y elimine la referencia del botón de inicio de sesión. Después de eso se ejecutará. Intentalo... :)


Yo tuve el mismo problema:

Anteriormente había realizado una conexión utilizando guiones gráficos de un campo de texto a un archivo de encabezado. Más tarde decidí que quería cambiar el nombre de la conexión de mi objeto, desafortunadamente, no rompí la conexión correctamente. Si este problema era el mismo que el mío, anteriormente existía una conexión a un botón y el código en el encabezado se eliminó, pero la conexión no.

Verifique las conexiones de objetos en la vista que está siguiendo.