OStack程序员社区-中国程序员成长平台

标题: iphone - iOS - UIImageView 动画内存泄漏? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 01:33
标题: iphone - iOS - UIImageView 动画内存泄漏?

我目前正在使用 UIImageView 根据用户按下的按钮为一系列图像设置动画。我在 NSArrays 中创建了大约 5 组不同的图像,例如:

-(void)initiateAnimations {

punchani = [NSArray arrayWithObjects:
           [UIImage imageNamed"punch0001.png"],
           [UIImage imageNamed"punch0002.png"],
           [UIImage imageNamed"punch0003.png"],
           [UIImage imageNamed"punch0004.png"],
           [UIImage imageNamed"punch0005.png"],
           [UIImage imageNamed"punch0006.png"],
           [UIImage imageNamed"punch0007.png"],
           [UIImage imageNamed"punch0008.png"],
           [UIImage imageNamed"punch0009.png"],
           [UIImage imageNamed"punch0010.png"],
           [UIImage imageNamed:@"punch0011.png"],
           [UIImage imageNamed:@"punch0012.png"],nil];
}

然后我使用标准动画代码将它们循环一次:

player.animationImages = punchani;
player.animationDuration = 0.50;
player.animationRepeatCount = 1;
[player startAnimating];

但是,当我将越来越多/不同的图像加载到 UIImageView 中时,我最终会得到一个内存警告输出,如下所示将我的实际可执行文件替换为“appname”)

 2013-03-15 20:52:23.065 AppName[2080:907] Received memory warning.

我知道这可能会发生,但 ARC 禁止我释放数组。我该如何解决这个泄漏?谢谢



Best Answer-推荐答案


UIImage imageNamed:缓存图片并按照自己的时间表释放内存。利用 + (UIImage *)imageWithContentsOfFileNSString *)path 直接加载内存

Try this answer as well.动画结束时删除图像数组

关于iphone - iOS - UIImageView 动画内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15445372/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4