+(void)setup {
UIImage* spriteSheet = [UIImage imageNamed:@"mySpriteSheet.png"];
CGRect rect;
animation = [NSMutableArray arrayWithCapacity:numberOfFramesInSpriteSheet];
int frameCount = 0;
for (int row = 0; row < numberFrameRowsInSpriteSheet; row++) {
for (int col = 0; col < numberFrameColsInSpriteSheet; col++) {
frameCount++;
if (frameCount <= numberOfFramesInSpriteSheet) {
rect = CGRectMake(col*frameHeight, row*frameWidth, frameHeight, frameWidth);
[animation addObject:[UIImage imageWithCGImage:CGImageCreateWithImageInRect(spriteSheet.CGImage, rect)] ];
}
}
}
}
在启用 ARC 的情况下编译上述代码。分析工具报告可能存在内存泄漏,因为 imageWithCGImage:: 返回 UIImage 计数 +1,然后引用丢失。Leaks Instrument 报告根本没有内存泄漏。这里发生了什么?
此外,由于 ARC 禁止使用手动使用release
ect,如何修复泄漏?
感谢任何可以提供任何建议的人。