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:是不是可以仅在子视图上启用用户交互?

iPhone - 行为类似于 UIViewController 的 UIView

UIView 未调整大小以填充 iPhone 6 窗口

iPhone 选项菜单