Iphone:定制的 UIView 是不是需要 dealloc
Posted
技术标签:
【中文标题】Iphone:定制的 UIView 是不是需要 dealloc【英文标题】:Iphone: Does a custom made UIView needs a deallocIphone:定制的 UIView 是否需要 dealloc 【发布时间】: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。它会给你一个你需要改变的事情的清单。不过,其中大部分应该是自动化的。 【参考方案1】:您的代码有很多问题。
[[[[NSBundle mainBundle] loadNibNamed:@"ParanoidView" owner:self options:nil] objectAtIndex:0] autorelease];
你不能释放或自动释放你没有保留的东西。期间。
【讨论】:
以上是关于Iphone:定制的 UIView 是不是需要 dealloc的主要内容,如果未能解决你的问题,请参考以下文章
iPhone上的UIView和UILabels上的渐变[重复]
nib 中的 UIView 在 iPad 上是 nil,在 iPhone 上不是 nil
iPhone UIView:是不是可以仅在子视图上启用用户交互?