2011-05-31 10 views
5

En mi aplicación, estoy presionando un controlador de vista (un UITableViewController) que también tiene una propiedad/salida que hace referencia a UITableViewCell. Parece ser que la creación de la controlador con:UIViewController init vs initWithNibName: paquete:

PreferencesController *pController = [[PreferencesController alloc] init];

no crear el objeto para el UITableViewCell en el archivo xib, por lo tanto la salida es nula, por lo tanto la carga de mesa genera una excepción. He resuelto esto con:

PreferencesController *pController = [[PreferencesController alloc] initWithNibName:@"PreferencesController" bundle:nil];

pero realmente no consiguió por qué funcionó, a partir de la documentación parece que init debería ser suficiente para cargar el archivo semilla relacionado (PreferencesController.xib).

Respuesta

4

Parece haber algo mágico sobre el nombre PreferencesController. Simplemente tuve exactamente el mismo problema. Cambiar el nombre de mi clase (y xib) a otra cosa resolvió el problema.

3

Editar: Estaba incorrecto, los archivos de punta deberían cargarse automáticamente con alloc init si se nombran igual que el controlador.

¿Cuál es el propietario de tu archivo en Interface Builder? El comportamiento predeterminado se puede modificar cambiando este valor.

+0

clase del propietario del archivo de PreferencesController.xib es PreferencesController y para LibraryMenuController.xib es LibraryMenuController ..
el punto es que los objetos en el xib no ligado directamente en el hotel vista en propietario del archivo no se cargan con el método init, pero initWithNibName es necesario .. – Fr4ncis

1

Tiene que anular initWithNibName:bundle: en lugar de init porque este es el "inicializador designado". Cuando carga esto desde un archivo Nib, este es el mensaje del creador al que se llama.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
     // Custom initialization 
    } 
    return self; 
} 

Recursos

+0

¿Por qué el voto a favor? –

Cuestiones relacionadas