2012-10-05 22 views
5

Empecé a trabajar en una vista con un archivo NIB y decidí eliminarlo de mi proyecto para compilarlo programáticamente. No hay menciones de la supuesta llamada al archivo NIB en ninguno de mis códigos y .XIB no existe en ningún lado en ninguno de los directorios de la aplicación. Aquí está el error exacto que me arrojaron desde la consola de depuración.XCode está intentando cargar un archivo NIB que eliminé del proyecto

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason:  
'-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "GESplitMainViewController" 
nib but the view outlet was not set.' 

No puedo entender por qué el xcode todavía está intentando cargar el NIB.

+0

¿Cuál es su código en initWithNibName: paquete:? – Pfitz

+0

Probablemente le está diciendo que cargue el archivo xib en código, o en un guión gráfico o algo así. Por favor, muéstrenos su código o intente buscar el nombre del NIB en el proyecto. –

+0

No estoy mencionando el archivo NIB en ningún lugar del código. –

Respuesta

11

En primer lugar, el valor predeterminado implementation de búsquedas initWithNibName:bundle el haz de una punta que comparte el mismo nombre que la clase del controlador de vista si pasas nil como el primer parámetro, por lo que tu aplicación está intentando cargar uno.

El hecho de que encuentre uno probablemente se deba a que el .xib que solía tener en su proyecto todavía está incluido en el paquete que el simulador está ejecutando. Xcode tiene la costumbre de dejar los recursos eliminados en el paquete del simulador, incluso si los elimina de su proyecto.

Si elimina la aplicación del simulador, limpia su proyecto de Xcode y vuelve a ejecutar, debe dejar de intentar cargar el plumín.

Aunque esta es la razón por la cual su aplicación se está cargando desde un plumín, no es la razón por la que está fallando. El bloqueo se debe a que el .xib anterior que estaba utilizando no tenía una vista conectada a la salida de vista del controlador de vista.

+1

Gracias por la valiosa información :) –

+1

Veo este comportamiento también, y una compilación limpia funciona en el simulador, pero ¿qué hacer cuando la compilación está en la naturaleza? Simplemente la actualización parece no eliminar el xib ahora difunto del teléfono, a pesar de que ya no existe en el paquete. ¿Hay alguna manera de purgarlo? ¿O simplemente tengo que vivir con su existencia continuada para siempre? Ciertamente no quiero decirles a mis usuarios que tienen que desinstalar y volver a instalar para hacer una actualización exitosa. –

0

Si no ha usado el nombre semilla en cualquier lugar de la aplicación, primero elimine la aplicación, limpiar su construcción y prueba de ello, espero que esto resuelve su problema ..

Cuestiones relacionadas