【发布时间】:2012-04-09 16:35:42
【问题描述】:
我正在尝试格式化数字数组以在循环中显示在 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];
【问题讨论】:
-
您无需致电
[tempString release];,仅此而已。运行循环将在您的方法完成后的一段时间内为您“自动释放”对象。 -
我认为可能有问题,因为我更改了 tempString 指针,因此我丢失了指向该对象的指针。我认为它可能会导致内存泄漏,因为函数结束时它会自动释放 tempString,但不是所有以前的 tempString 分配。我不是故意放[tempString release]的,我错了。
-
我编辑了我的答案以回应您的最后评论。
-
为什么使用 C 数组而不是 NSArray?
标签: objective-c loops autorelease nsnumberformatter