UILabel内存泄漏?

时间:2009-05-03 17:31:24

标签: iphone objective-c uilabel nstimer

我有一个NSTimer每秒都会触发,在那一秒我通过设置text属性来更新UILabel:

remainglbl.text = [NSString stringWithFormat:@"%i:%02i", var1, var2];   

它运行正常,但是当我使用Start With Performance Tool在xcode中运行它时,>泄漏,似乎记忆只是继续攀爬,攀爬和攀爬。

根据我的理解,字符串应该是自动释放的(尽管我从未看到内存减少或停止增加)。

这是内存泄漏吗?有没有更好的方法来控制内存使用?

谢谢!

更新:创建计时器的代码如下:

timeTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(changeTime:) userInfo:nil repeats:YES];  
在定时器完成时清理的代码如下:

[timeTimer invalidate];
[timeTimer release];
timeTimer = nil;

这有什么问题吗?我认为一旦计时器结束,内存可能会被释放,但事实并非如此。

2 个答案:

答案 0 :(得分:1)

我认为问题在于我不了解性能工具。使用活动监视器运行不会显示增加的内存使用量。

答案 1 :(得分:0)

出于好奇,如果您使用[remainingLbl setText:]而不是设置属性,问题是否仍会出现?你的代码看起来很好......因为stringWithFormat自动释放字符串,所以应该清理内存。

要尝试的另一件事是:在Objective-C中创建线程时,必须将所有代码包装在NSAutoreleasePool中,以便清除在线程执行期间创建的内容。这不应该在这里有所作为,因为一个人应该已经存在 - 但它值得一试。