iphone - 工具:创建 UIButton 时内存泄漏

标签 iphone memory-leaks uibutton instruments iboutlet

我试图找出为什么在界面生成器中创建 UIButton 时 - 通过 xcode 运行仪器应用程序时发生内存泄漏。

这就是我造成内存泄漏的方式。

我打开了一个新应用程序,在界面生成器中打开了 myAppViewController.xib 文件。 我把背景改成了黑色。 添加了一个 UIButton,将其重命名为“foo”标题。 保存然后退出。

在 myAppViewController.h 文件中,我有以下内容

#import <UIKit/UIKit.h>

@interface miPlanNewViewController : UIViewController { 
    IBOutlet UIButton *tasksProjects; 
}
@property(nonatomic, retain) IBOutlet UIButton *tasksProjects;
@end

在 myAppViewController.m 文件中,我有以下内容:

#import "miPlanNewViewController.h"

@implementation miPlanNewViewController
@synthesize tasksProjects;

...
//the normal methods you get
...
- (void)dealloc {
    [super dealloc];
}
@end

这是我目前在仪器中得到的屏幕截图。

alt text alt text

但是我注意到一件事......

我还没有在界面生成器中将 socket 连接到 uibutton,但是当我从界面生成器中删除 UIButton、保存并再次使用仪器运行程序时,我根本没有遇到任何泄漏。

有人可以解释一下发生了什么以及我如何解决这个问题。谢谢。

最佳答案

  • 首先,您不会释放该属性(property)。 在 dealloc 中你应该有 [tasksProjects release]; 并且在 viewDidUnload 中你应该有 self.taskProjects = nil;
  • 其次,正如 lxt 提到的,您不应该使用模拟器进行内存泄漏检查。
  • 第三,检查您是否正在构建发布版本而不是调试版本。

关于iphone - 工具:创建 UIButton 时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4640076/

相关文章:

java - 有效地散列目录中的所有文件(1000 个 2MB 文件)

javascript - 将 img.src 设置为 dataUrl 会泄漏内存

ios - 向父对象窗体弹出消息发送消息

iphone - 导航栏中的 iOS UIButton 在执行变换动画后消失

iphone - 为 UIButton 设置 titleLabel

iphone - View XIB 和空 XIB 之间有什么区别?

ios - iOS8 允许我们有自己的快速回复吗?

iphone - 仅在 Superview 上禁用触摸事件?

iphone - 如何在 iPhone 应用程序中启用/禁用 iTunes 文件共享

java - 由于内存泄漏导致tomcat崩溃