iPhone,方法返回+1保留计数的客观c对象

问题描述:

我有点理解为什么我得到这个分析器警告。因为我使用的是正在传入的对象。我试过autoreleaseretain但是这些会导致我遇到其他问题,如unrecognized selector sent to instanceiPhone,方法返回+1保留计数的客观c对象

我的CommonUI功能的目的是重新使用代码,但我不得不迎合addSubViewpresentModalViewController

也许我在做一些明显的错误?

alt text

+0

需要看你的HelpViewController的initWithNibName:包:的onpage:方法的代码请 – 2010-11-29 11:01:43

+0

希望你不介意,但我已经改善你的代码缩进有点 – JeremyP 2010-11-29 11:44:57

这里有两个问题。

首先,如果您拨打[vc release](如其他答案所示),那么您肯定会使分析仪很高兴,但可能会导致应用程序崩溃。视图控制器的视图不保留控制器,因此视图中的任何按钮目标都将指向垃圾。

只要它在屏幕上显示,您将需要保持HelpViewController保持不变。 “父”视图控制器应该可能以某种方式保留它。你可以autorelease它,并返回它。然后,无论谁拨打showHelpClick...都会保留返回的控制器。

其次,您不需要将(UIViewController *)vc作为参数传入。

更改您这样的代码:

HelpViewController *helpvc = [[HelpViewController alloc] init....]; 
[vw addSubview:helpvc.view]; 
[helpcv release]; 

我觉得你并不需要通过其他的VC。

+0

这会崩溃的应用程序如果从HelpViewController视图的子视图的任何事件都有HelpViewController作为它们的目标。 – Jason 2010-11-30 14:52:41