您好我正在开发一个iPhone应用程序,它提供图像和文本信息。在每个文本中都有一个图像,可以单击和缩放,用UIImageView显示
NSString* imgName = [imgPath substringToIndex:[imgPath rangeOfString:@".jpg"].location];
UIImage* img = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imgName ofType:@"jpg"]];
[imgView setImage:img];
当我逐个打开图片时,应用程序崩溃(在设备上调试)。在控制台中出现一些错误:
:解压缩错误 my_app_name(1226,0x3e088868)malloc: * mmap(size = 32768)失败(错误代码= 12) * 错误:无法分配区域
然后:
CoreAnimation:无法分配2228352个字节。
我的代码没有泄漏,如果我不打开图像,我就不会收到错误。那么有谁知道这个问题可能是什么?
答案 0 :(得分:2)
问题似乎在[imgView setImage:img];
img虽然已经发布,但不知何故还在记忆中,我不知道。在dealloc中发布imgView之前的一行代码[imgView setImage:nil];
解决了这个问题。
感谢您的帮助。
答案 1 :(得分:1)
好像你使用了太多内存?
你打开多少张图片?从连接的仪器开始,观察内存占用。
请记住,图像在加载时比在磁盘上压缩时占用更多内存。
答案 2 :(得分:0)
尝试在本地自动发布池中包装您的分配/版本。