使用stringwithformat时发生内存泄漏
问题描述:
我在下面的代码的添加目标行中发现了内存泄漏,我正好释放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];
答
我不知道你写的地方会发生什么/* ... */
。可能有一个隐藏在那里的返回语句。在这种情况下会导致泄漏。这将处理这种情况。
UIButton *btnProjectName = [[[UIButton alloc]initWithFrame:CGRectMake(20, 10, 170, 40)] autorelease];
也删除靠近底部的[btnProjectName release];
。
如果是新的Xcode项目,则考虑使用ARC。
你发现了内存泄漏?那么问题是什么? – Geoffroy 2012-02-07 06:54:35
什么类型的对象在泄漏?你是如何发现泄漏的? – bneely 2012-02-07 06:59:17
@Geoffroy,无处他使用'stringWithFormat' ..我可以知道你为什么将标题改为这个吗? – Ilanchezhian 2012-02-07 07:17:27