1

我正在尝试格式化一个数字数组以显示在循环中的 CCLabelTTF 数组中。NSNumberFormatter 返回一个自动释放对象。我不太确定我应该如何处理这里的内存管理。任何建议将不胜感激。

这是我要解决的问题:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSString *tempString;

for(int i = 0; i<10; i++){
    tempString = [formatter stringFromNumber:[NSNumber numberWithInteger:NumberArray[i]]];
    CCLabelTTFArray[i] = [[CCLabelTTF alloc] initWithString: tempString fontName:@"Arial" fontSize:10.0f];
    [tempString release];
}

[formatter release];
4

1 回答 1

1

您不需要调用:运行循环会在您的方法完成[tempString release];的一段时间内为您“自动释放”对象。对于短时间运行的循环(比如你的,只有十次迭代),没有什么可担心的。对于具有数千次迭代的循环,您可以考虑添加Autorelease Pool

我认为这可能会导致内存泄漏,因为函数结束时它会自动释放 tempString 但不是所有以前的 tempString 分配

该方法的每次调用都会stringFromNumber:将其返回值添加到自动释放池中,因此无论您循环执行多少次,所有返回的字符串都会被自动释放。

于 2012-04-09T16:46:20.540 回答