【发布时间】:2012-11-24 21:38:30
【问题描述】:
我有一个定制的 uiview 类,并且我有一个 dealloc,其中包含其他释放调用。
在这个自定义 uiview 中,我有 3 个控件出口:按钮、文本视图等。当自定义 uiview 解除分配时,我收到此错误:对象 0x88782c0 错误:未分配指针被释放。
在代码内部,我根本没有发布任何这些出口。当我删除了发布调用的那 3 个出口时,错误就消失了。我是否需要取消分配这些网点。
[[[[NSBundle mainBundle] loadNibNamed:@"ParanoidView" owner:self options:nil] objectAtIndex:0] autorelease];
[self.view setFrame:CGRectMake(0.0f, 0.0f, frame.size.width, frame.size.height)];
[self addSubview:self.view];
上面的代码是在 initWithFrame 调用中添加的,用于加载 nib 文件。
【问题讨论】:
-
是我使用非 ARC 的旧项目。所以如果我改变它,我必须改变很多东西
-
老实说,转换为 ARC 比您想象的要快得多,最终您将拥有一个更稳定的应用程序,并且代码会更干净。
-
好吧我以后真的改了。。。主要有什么变化
-
在顶部的菜单中,选择Edit,然后选择Refactor,然后选择Convert to Objective-C ARC。它会给你一个你需要改变的事情的清单。不过,其中大部分应该是自动化的。
标签: iphone release nib dealloc