4

我试图找出为什么在界面构建器中创建 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

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

替代文字 替代文字

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

我还没有在界面构建器中将 Outlet 连接到 uibutton,但是当我从界面构建器中删除 UIButton,保存,然后再次使用仪器运行程序时,我根本没有任何泄漏。

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

4

1 回答 1

2
  • 首先,你没有释放财产。在 dealloc 你应该有 [tasksProjects release];并且在 viewDidUnload 你应该有self.taskProjects = nil;
  • 其次,正如 lxt 所提到的,您不应该使用模拟器进行内存泄漏检查。
  • 第三,检查您是否正在构建版本而不是调试。
于 2011-01-09T16:18:18.410 回答