我试图使用推我的导航控制器上的一个新的视图:

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

我运行到以下错误:

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'
有帮助吗?

解决方案

你释放出是没有意义的,你刚刚分配的对象。

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

推入到堆栈之后释放myTableView

其他提示

呼叫释放推后。

<强> 2010-02-25 21:19:57.717的CoC [3399:20B] * ** - [UIViewController中switchPage:]:无法识别的选择发送到实例0xf1a660

您崩溃不是因为代码你所提到的情况。但在你的代码一样的释放和thenpush的错误。改变它为:

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

我想被调用对象“switchPage:”方法具有一些问题。检查或表明了该方法的调用的任何帮助

此致 Manjunath

以上是正常的,当子视图控制器已被推入资产净值的堆栈,保留计数应该增加,那么你应该推操作之后将其释放。

你确定你不需要掉最后两行?第一推控制器,然后释放它不反之亦然...:)

如前所述,你推入之前释放视图控制器。当把它压入导航控制器,保留计数增加,然后就可以将其释放。

-(IBAction)switchPage:(id)sender
{
     MyTableViewController *myTableView = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:myTableView animated:YES];
    [myTableView release];
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top