2010-04-20 42 views
1

一般来说,我通过创建委托的指针调用我的其他类视图,然后通过下面的链接调用其他类: -在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; 

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

请帮助我 在此先感谢

回答

0

在内存管理方面,这两者之间没有任何区别 - 既可以让您有内存泄漏,也可以不依赖于其他代码!

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

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

相关问题