Iphone 已分配对象的潜在泄漏-UIViewController

Iphone 已分配对象的潜在泄漏-UIViewController,iphone,memory-management,memory-leaks,uiview,uiviewcontroller,Iphone,Memory Management,Memory Leaks,Uiview,Uiviewcontroller,我的应用程序是基于视图的应用程序。 我有3个视图控制器。(主要、次要、细节) 每个viewcontroller都有一个UIView。 在MainViewcontroller中,有一个启动子视图的按钮。 方法如下 -(iAction)启动子视图:(id)发件人{ } 当我尝试构建和分析时,我得到了这个警告。 第54行分配并存储到“viewController”中的对象可能泄漏。 在从View方法和subViewcontroller*viewController=[[[subViewcontroll

我的应用程序是基于视图的应用程序。 我有3个视图控制器。(主要、次要、细节) 每个viewcontroller都有一个UIView。 在MainViewcontroller中,有一个启动子视图的按钮。 方法如下

-(iAction)启动子视图:(id)发件人{

}

当我尝试构建和分析时,我得到了这个警告。 第54行分配并存储到“viewController”中的对象可能泄漏。 在从View方法和subViewcontroller*viewController=[[[subViewcontroller alloc]init]autorelease]转换之后,我尝试了[viewController释放];这两种方式都会导致应用程序崩溃。你知道我该怎么办吗?提前感谢您的帮助。=)

尝试使用


subViewcontroller*viewController=[[subViewcontroller alloc]initWithNibName:@“您的nib文件名”bundle:@“如果您有一个bundle,否则为nil”]

并在方法结束前释放viewController对象 像这样


[子视图控制器释放];

从视图:转换到视图:持续时间:选项:完成:
不是正确的使用方法。您可能应该使用
presentModalViewController:animated:

如果您阅读了从视图:到视图:持续时间:选项:完成:转换的文档,它将解释:

此方法仅修改视图层次中的视图。它不会以任何方式修改应用程序的视图控制器。例如,如果使用此方法更改视图控制器显示的根视图,则您有责任适当更新视图控制器以处理更改。”


你正在运行哪个版本的Xcode?我试图重现问题,但没有成功。嗨..我正在运行版本3.2.5抱歉,伙计,我已经习惯了Xcode的自动完成,所以我不记得所有的方法名称。顺便说一句,谢谢。嗨..一旦我释放viewcontroller,应用程序崩溃。只要我不释放它,应用程序工作正常.但我有潜在的泄密=(是的,我认为您没有将对象保留在其他视图控制器中。您确定您正在为另一个视图中的所有对象设置属性吗?此外,您不需要像那样嵌套UIViewController的视图。但是,如果有两个视图,它们是单个UIViewController根视图的子视图,并且使用
transitionFromView:toView:duration:options:completion:
在它们之间切换。@乔纳,你为什么说我们不希望下一个UIViewControllers像这样?我在我的应用程序中已经做过几次了,我想保持代码模块化,而不是将所有内容都集中到一个或两个单一的视图控制器中?@Stradle看一看我对将代码拆分为多个控制器的回答很好,但它们不一定都继承自UIViewController。
subViewcontroller *viewController = [[subViewcontroller alloc] init];

UIView *currentView = self.view;
[UIView transitionFromView:currentView 
                    toView:viewController.view 
                  duration:0.5 
                   options:UIViewAnimationOptionTransitionFlipFromLeft   
                completion:^(BOOL finished){}];