在iphone中调用其他类视图的最佳方法?

时间:2010-04-20 14:40:29

标签: iphone

通常我通过创建委托指针调用我的其他类视图,然后使用其链接调用另一个类,如下所示: -

第一种方式: -

Mydelegate *ptr = (Mydelegate *)[[UIApplication sharedApplication]delegate];

[self.navigationController pushViewController:ptr.NextClasspointer animated:YES];

第二种方式: -

创建一个你想要调用的类的指针: -

NextClass *nextptr = [[NextClass alloc]initWithnibName:@"NextClass" bundle:nil];
[self.navigationController pushViewController:nextptr animated:YES];

[nextptr release];
nextptr = nil;

以上两种方法我一般都使用,但我的问题是哪一个最适合大项目,以便我的堆栈问题将被删除我的意思是内存问题将被解决。并且 是否有必要在第一种和第二种情况下释放指针是我发布的方式是正确还是错误

请帮帮我 在此先感谢

1 个答案:

答案 0 :(得分:0)

在内存管理方面,这两者之间没有区别 - 两者都会让你有内存泄漏或不依赖于代码的其余部分!

但是,请记住其中任何一个,每当您的用户想要“向下钻取”导航中的另一个级别时,它必须从nib文件加载视图;相反,每次他们“备份”导航堆栈时,这些都将被卸载。通常,如果我的用户可能一直在导航堆栈中上下移动,我会保留“子”视图控制器的单个实例,并在用户想要转到堆栈时将其推回堆栈。

如果您遇到内存问题,我认为这可能是由于卸载/发布时未正确释放NextClass所使用的对象造成的。仔细检查在ViewDidUnload方法中是否正在释放您在NextClass对象中合成/分配的所有对象。