Pregunta

Estoy intentando empujar una nueva visión en mi controlador de navegación usando:

    -(IBAction)switchPage:(id)sender
{
 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
 [myTableView release];
 [self.navigationController pushViewController:myTableView animated:YES];
}

Me estoy quedando en el siguiente error:

2010-02-25 21:19:57.717 CoC[3399:20b] *** -[UIViewController switchPage:]: unrecognized selector sent to instance 0xf1a660
2010-02-25 21:19:57.718 CoC[3399:20b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIViewController switchPage:]: unrecognized selector sent to instance 0xf1a660'
¿Fue útil?

Solución

estás liberando un objeto que acaba de ser asignado que no tiene sentido.

 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
     [myTableView release];

myTableView liberación después de empujarlo hacia la pila

Otros consejos

Liberación de la comunicación después de empujar.

2010-02-25 21: 19: 57.717 CoC [3399: 20b] * ** - [UIViewController switchPage:]: selector no reconocido enviado a instancia 0xf1a660

Su caída no por el código de lo que usted ha mencionado. Pero hay un error en el que un código como liberación y thenpush. Cambiarlo como:

 -(IBAction)switchPage:(id)sender
{
 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
 [self.navigationController pushViewController:myTableView animated:YES];
 [myTableView release];
}

supongo que el objeto que está llamando "switchPage:" método está teniendo algún problema. Compruébelo usted mismo o mostrar la invocación de este método para cualquier ayuda

Saludos, Manjunath

Por encima está bien, cuando el controlador subvista ha sido empujado en la pila de la NAV, la cuenta de retención se debe aumentar, entonces debería liberarlo después de la operación de empuje.

¿Está seguro de que no es necesario intercambio última dos líneas? En primer controlador de empuje, luego soltarlo no viceversa ...:)

Como se mencionó anteriormente, se suelta el controlador de vista antes de empujarlo. Cuando se empuja hacia el controlador de navegación, la retienen recuento se incrementa, y entonces usted puede liberarlo.

-(IBAction)switchPage:(id)sender
{
     MyTableViewController *myTableView = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:myTableView animated:YES];
    [myTableView release];
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top