【发布时间】:2013-01-25 14:53:05
【问题描述】:
这是一段代码,你能帮我正确管理其中的内存吗?
- (void) buildSpritesWithName:(NSString*)sN {
self.arrayPages = [[NSMutableArray alloc] initWithCapacity:self.numPages];
NSString *spriteName0 = [NSString stringWithFormat:@"%@%i.png", sN, 0];
CCSprite *temp0 = [CCSprite spriteWithSpriteFrameName:spriteName0];
NSLog(@"temp sprite %@ size : %f / %f",spriteName0, temp0.contentSize.width, temp0.contentSize.height);
self.imgSize = CGSizeMake(temp0.contentSize.width, temp0.contentSize.height);
for (int c = 1; c <= numberOfWheelFacesCycles; c++) {
for (int x = 1; x <= self.numPages; x++) {
NSString *spriteName = [NSString stringWithFormat:@"%@%i.png",sN, x];
CCSprite *temp = [CCSprite spriteWithSpriteFrameName:spriteName];
[self.arrayPages addObject:temp];
}
}
NSLog(@"%i Pages built",self.arrayPages.count);
}
分析器在以下行显示“对象的潜在泄漏”:
NSString *spriteName0 = [NSString stringWithFormat:@"%@%i.png", sN, 0];
为什么? NSString 是自动释放对吗?那么哪个对象可能被泄露?
我在另一个班级有以下问题,又是什么问题:
self.name = [playersNames objectAtIndex:type];
对了,如果循环的管理不好,你能不能给点建议?
感谢您的帮助
【问题讨论】:
-
如果您得到正确答案,请单击复选标记,以便我们都知道它已被回答。
标签: objective-c xcode memory-management memory-leaks cocos2d-iphone