【问题标题】:When I use a .xib file to layout my viewController IBOutlets aren't being released when the view controller is released当我使用 .xib 文件进行布局时,我的 viewController IBOutlets 没有在视图控制器被释放时被释放
【发布时间】:2010-10-03 08:58:55
【问题描述】:

我使用 .xib 来布局我的 viewController 并有 10 个 IBOutlet 对象供 IB 使用,它们都没有分配给它们的 @properties(没有 @property(retain) IBOutlet...)。当我释放 viewController 时,这些对象都没有被释放,我必须在 viewController 的 dealloc 中手动释放它们。

这似乎不是正常行为,我认为这些对象会被系统释放,因为 IB 正在分配它们,我做错了什么?

【问题讨论】:

    标签: iphone objective-c xcode interface-builder


    【解决方案1】:

    Apple 的Memory Management Programming Guide 会告诉您如何使用properly release IBOutlets

    简而言之,你应该在dealloc中释放它们,但你也想在viewDidUnload中释放它们。

    【讨论】:

    • 啊,这是 4.x 中的新行为吗?既然我们有 viewDidUnload 并且它过去只是在 3.x 中为您处理它?
    • 它们被分配给你的 ivars,所以你拥有它们,所以你必须释放它们。 一直都是这样。 过去,Leaks 没有检测到某些类型的垃圾(它永远不会检测到泄漏的 UIImageView);也许他们解决了这个问题。我还强烈建议使用属性并改用self.foo = nil;当我看到代码释放 ivars 而不将它们设置为 nil 时,我感到畏缩。
    • 谢谢,并同意重新:将事物设置为零。
    猜你喜欢
    • 2013-03-09
    • 2011-06-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    相关资源
    最近更新 更多