Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 方法返回一个带有+;1保留计数_Iphone_Objective C_Xcode - Fatal编程技术网

Iphone 方法返回一个带有+;1保留计数

Iphone 方法返回一个带有+;1保留计数,iphone,objective-c,xcode,Iphone,Objective C,Xcode,我有点理解为什么我会收到这个警告。因为我正在使用一个正在传入的对象。我尝试了自动释放和保留,但是这些都会导致其他问题,例如发送到实例的选择器无法识别 我的CommonUI函数的目的是重用代码,但我必须满足addSubView和presentModalViewController的要求 也许我做错了什么 如下更改代码: HelpViewController *helpvc = [[HelpViewController alloc] init....]; [vw addSubview:helpvc.

我有点理解为什么我会收到这个警告。因为我正在使用一个正在传入的对象。我尝试了
自动释放
保留
,但是这些都会导致其他问题,例如
发送到实例的选择器无法识别

我的CommonUI函数的目的是重用代码,但我必须满足
addSubView
presentModalViewController
的要求

也许我做错了什么


如下更改代码:

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

我想你不需要通过其他VC。

这里有两个问题

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

您需要以某种方式保留
帮助视图控制器
,直到它显示在屏幕上为止。“父”视图控制器可能会以某种方式保留它。您可以自动释放它,然后返回它。然后,无论谁调用
showHelpClick…
都将保留返回的控制器


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

需要查看HelpViewController的initWithNibName:bundle:onPage:method code请不要介意,但我已经改进了代码缩进位是的,您的权利,我有一个使应用程序崩溃的按钮。您有什么建议吗?我很乐意更改我的CommonUI函数,但我并不想更改入门代码。GettingStartedViewController需要保留HelpViewController;就这么简单,这是一个常见的范例(就像父视图保留它们的子视图一样)。好的,那么我该怎么做来修复我的CommonUI函数以停止analyzer警告?就像我上面的回答一样,让它返回autoreleased HelpViewController,调用它的GettingStarted代码应该保留返回值。i、 e.在
[vw addSubview…]
之后,
返回[vc autorelease]
和在GettingStarted中,
self.helpController=[cui showHelp…]
,其中
helpController
是保留的属性。记得在GettingStarted的dealloc中发布它。谢谢你帮我纠正Jason的错误。我不确定它是否会保留它。我自己也投了反对票,虽然删除它可能是更好的选择——不确定这里有什么合适的礼仪。如果HelpViewController视图的子视图中的任何事件都以HelpViewController为目标,这将使应用程序崩溃。