2012-02-07 232 views
-1

我在下面的代码的添加目标行中发现了内存泄漏,我正好释放ui按钮,我不知道为什么会发生这种情况。使用stringwithformat时发生内存泄漏

UIButton *btnProjectName = [[UIButton alloc]initWithFrame:CGRectMake(20, 10, 170, 40)]; 
btnProjectName.backgroundColor=[UIColor clearColor]; 
btnProjectName.tag=obj.tagNo; 
[btnProjectName addTarget:self action:@selector(projectName_Clicked:) forControlEvents:UIControlEventTouchUpInside]; 

/* ... */ 

[btnproject release]; 
+2

你发现了内存泄漏?那么问题是什么? – Geoffroy 2012-02-07 06:54:35

+0

什么类型的对象在泄漏?你是如何发现泄漏的? – bneely 2012-02-07 06:59:17

+0

@Geoffroy,无处他使用'stringWithFormat' ..我可以知道你为什么将标题改为这个吗? – Ilanchezhian 2012-02-07 07:17:27

回答

0

我不知道你写的地方会发生什么/* ... */。可能有一个隐藏在那里的返回语句。在这种情况下会导致泄漏。这将处理这种情况。

UIButton *btnProjectName = [[[UIButton alloc]initWithFrame:CGRectMake(20, 10, 170, 40)] autorelease]; 

也删除靠近底部的[btnProjectName release];


如果是新的Xcode项目,则考虑使用ARC

相关问题