【问题标题】: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。它会给你一个你需要改变的事情的清单。不过,其中大部分应该是自动化的。

标签: iphone release nib dealloc


【解决方案1】:

您的代码有很多问题。

[[[[NSBundle mainBundle] loadNibNamed:@"ParanoidView" owner:self options:nil] objectAtIndex:0] autorelease];

你不能释放或自动释放你没有保留的东西。期间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 2011-04-01
    相关资源
    最近更新 更多