iPhone方法返回一个具有+1保留计数的objective-c对象

时间:2010-11-29 10:44:49

标签: iphone objective-c xcode

我有点理解为什么我会收到这个分析仪警告。因为我正在使用正在传入的对象。我已尝试autoreleaseretain但是这些会导致其他问题,例如unrecognized selector sent to instance

我的CommonUI功能的目的是重用代码,但我必须满足addSubViewpresentModalViewController

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

alt text

2 个答案:

答案 0 :(得分:2)

更改您的代码:

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

我认为你不需要传递其他VC。

答案 1 :(得分:1)

这里有两个问题。

首先,如果你打电话给[vc release](正如其他答案建议的那样),你肯定会让分析仪开心,但可能会使应用程序崩溃。视图控制器的视图不会保留控制器,因此视图中的任何按钮目标都将指向垃圾。

只要屏幕上显示HelpViewController,您就需要以某种方式保留showHelpClick...。 “父”视图控制器应该以某种方式保留它。你可以自动释放它,并将其返回。然后,任何调用(UIViewController *)vc的人都将保留返回的控制器。

其次,您不需要将{{1}}作为参数传入。