ios compiler-errors nib appdelegate

ios - NSInternalInconsistencyException '', razón:'' No se pudo cargar NIB en paquete: ''NSBundle



compiler-errors appdelegate (15)

Bueno, creo que el error dice que no puede encontrar un archivo nib llamado "RootViewController" en su proyecto.

Estás escribiendo estas líneas de código,

self.viewController = [[RootViewController alloc] initWithNibName:@"RootViewController_iPhone.xib" bundle:nil]; self.viewController = [[RootViewController alloc] initWithNibName:@"RootViewController_iPad.xib" bundle:nil];

Al mismo tiempo, le está pidiendo que cargue un archivo nib llamado "RootviewController" .. !! Dónde está..? ¿Tienes un archivo xib llamado "Rootviewcontroller" ..?

En mi AppDelegate hay un problema que no entiendo. RootViewController llamó inicialmente a ViewController y lo cambié de nombre. La aplicación está formada por muchos ViewController luego he introducido un UINavigationController. ¿Por qué viene este error?

NSInternalInconsistencyException'', reason: ''Could not load NIB in bundle: ''NSBundle /Users/XXXXXXXXXXXX/Library/Application Support/iPhone simulator/6.0/Applications/ B7A7D461-1CFE-4B05-AF32-00B65FCFFF49/XXXXXXXXXX.app> (loaded)''with name ''RootViewController'''' *** First throw call stack: (0x1992012 0x1357e7e 0x1991deb 0x4bafac 0x37fe37 0x380418 0x380648 0x380882 0 x380b2a 0x397ef5 0x397fdb x398286 0x398381 0x398eab 0x398fc9 0x399055 0x49e3ab 0x2ef92d 0x136b6b0 0x1f12fc0 0x1f0733c 0x1f12eaf 0x38e8cd 0x2d71a6 0x2d5cbf 0x2d5bd9 0x2d4e34 0x2d4c6e 0x2d5a29 0x2d8922 0x382fec 0x2cfbc4 0x2cfdbf 0x2cff55 0x2d8f67 0x2b30 0x29c7b7 0x29cda7 0x29dfab 0x2af315 0x2b024b 0x2a1cf8 0x1dbedf9 0x1dbead0 0x1907bf5 0x1907962 0x1938bb6 0x1937f44 0x1937e1b 0x29d7da 0x29f65c 0x269d 0x25c5) ibc++abi.dylib: terminate called throwing an exception (lldb)

Este es el código en AppDelegate.h

#import <UIKit/UIKit.h> @class RootViewController; @interface AppDelegate : UIResponder <UIApplicationDelegate>{ UINavigationController *navigationController; } @property (strong, nonatomic) UIWindow *window; @property (strong, nonatomic) RootViewController *viewController; @property (strong, nonatomic) UINavigationController * navigationController; @end

Este es el código de AppDelegate.m

#import "AppDelegate.h" #import "RootViewController.h" @implementation AppDelegate @synthesize navigationController; @synthesize viewController; @synthesize window; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { self.viewController = [[RootViewController alloc] initWithNibName:@"RootViewController_iPhone.xib" bundle:nil]; } else { self.viewController = [[RootViewController alloc] initWithNibName:@"RootViewController_iPad.xib" bundle:nil]; } RootViewController *rootMenu=[[RootViewController alloc]initWithNibName:@"RootViewController" bundle:nil]; self.navigationController =[[UINavigationController alloc]initWithRootViewController:rootMenu]; self.window.rootViewController = self.navigationController; [self.window makeKeyAndVisible]; return YES; }

Gracias por adelantado


Estaba estableciendo un self.collection opcional? View? .backgroundColor en el init (codificador: constructor de mi colección vc.

Una vez que haya movido esa configuración en viewDidLoad, la excepción de alguna manera desapareció. misterioso.


Este error puede ocurrir cuando cambia el nombre de los archivos fuera de XCode. Para resolverlo, simplemente puede eliminar los archivos de su proyecto (clic derecho - Eliminar y "Eliminar referencia").

Luego, después de que pueda volver a importar los archivos en su proyecto y todo estará bien.


Esto también puede ocurrir si cambias el nombre de tu archivo xib y olvidas cambiar todos los lugares a los que se hace referencia.

Ejemplo: MainWindow.xib es un TabBarController que contiene un ViewController personalizado denominado FirstViewController con el archivo xib asociado FirstView. Cambia el nombre a SecondViewController y el archivo xib asociado a SecondView.

Solución:

Abra MainWindow.xib (que contiene el TabBarController):

  • Seleccione la pestaña que es para ViewController que ha cambiado.
  • En el inspector de identidad, cambie el nombre de la clase personalizada a SecondViewController.
  • En el inspector de atributos, cambie el nombre de xib a SecondView.

Abra SecondView.xib (esto fue copiado de FirstView.xib):

  • En Identity Inspector, cambie la clase personalizada a SecondViewController.

Opcionalmente, puede necesitar:

  • Haga clic derecho en SecondView.xib, verifique que "Identidad y Tipo-> Membresía de destino" esté habilitado.
  • Asegúrese de que "Crear fases -> Copiar recursos de paquete" muestra su SecondView.xib
  • También encontré que de vez en cuando necesitaba construir y eliminar la aplicación del simulador para que el archivo xib realmente se actualizara. El simulador tiene un caché interno para archivos xib que es un poco inconsistente.

Había cambiado el nombre a xib y tenía este problema, la solución para mí era editar manualmente la ventana principal.xib y cambiar el texto ofensivo

buscar el nombre xib ofensor en el xib pertinente (ver como código fuente)

cambiado

<viewController nibName="OldNibName" id="116" customClass="SomeViewController">

con

<viewController nibName="NewNibName" id="116" customClass="SomeViewController">

Y funcionó


Hay tantas razones para este error. También obtuve una y la resolví.

Es posible que esté agregando un marco de terceros y no lo incluya en los recursos del paquete de copias. Eso me solucionó el problema.

Haz esto de la siguiente manera. Vaya a Target -> BuildPhases -> CopyBundleResources -> Arrastre y suelte su marco y ejecute el código.


He enfrentado este error durante mucho tiempo, también investigo por qué ocurre este error y, finalmente, capté este error, este es un error tonto que ocurre cuando .xib mal el nombre de archivo .xib .

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TableViewCell" owner:self options:nil];

En este punto, TableViewCell incorrectamente TableViewCell como TabelViewCell , porque la percepción de que alguna vez lo leímos como correcto, este es el problema más común. Solo copie su nombre de archivo .xib y péguelo.


He tenido el mismo problema bastantes veces. Lo que he encontrado para mí es que el archivo xib que estoy vinculando siempre estará mal escrito. En mi caso, esta es la línea de código que condujo a la excepción:

* NSArray nib = [[NSBundle mainBundle] loadNibNamed: @ "shelfcell" owner: self options: nil];

El "shelfcell" era mi nombre de archivo xib. Pero lo he escrito mal como "ShelfCell", "shelfCell", etc., que conducen a la excepción. Así que no te molestes mucho con la cabeza. Compruebe las líneas de código y la ortografía. Gracias


Intenté varias cosas, finalmente lo que funcionó para mí fue eliminar (y mover a la papelera) el archivo .xib en cuestión. Luego, recréalo. Para hacer las cosas más fáciles, copié las cosas en el .xib temporalmente en otro .xib, y luego lo copié en el nuevo creado.


Mientras desarrollaba la aplicación iOS, yo también enfrento un tipo similar de problema. El reinicio simple de xcode funciona para mí. Espero que esto ayude a alguien.


Para mi,

No instalé ese plumín en el objetivo requerido.

Paso 1: haga clic en su plumilla en Project Navigator (es decir, en la primera pestaña a la izquierda)

Paso 2: ir a File Inspector (es decir, en la primera pestaña a la derecha)

Paso 3: vaya a Membresía objetivo y marque el destino en el que desea usar su plumilla.


Pasé una hora averiguando qué pasaba. Pero Clean Project hizo el truco.

Build -> Clean All

La solución aceptada probablemente también esté funcionando ... pero esto fue suficiente para mí.


Simplemente intente eliminar el ".xib" del nombre de la lista en "initWithNibName:". De acuerdo con la documentación, se supone ".xib" y no debe utilizarse.


También asegúrese de que el archivo XIB esté incluido en su destino. Compruebe el inspector de archivos cuando se selecciona el archivo XIB (primera pestaña a la derecha, en el medio hay sección "membresía objetivo". El objetivo para el que se compila debe estar marcado, de lo contrario, el archivo XIB no se incluirá).


Tengo algunos subproyectos.

Resolví este problema al agregar el archivo xib a la fase de compilación Copy Bundle Resources del proyecto principal .