Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 大UIImage导致内存不足和崩溃_Iphone_Ios_Xcode_Cocoa Touch_Memory Management - Fatal编程技术网

Iphone 大UIImage导致内存不足和崩溃

Iphone 大UIImage导致内存不足和崩溃,iphone,ios,xcode,cocoa-touch,memory-management,Iphone,Ios,Xcode,Cocoa Touch,Memory Management,我有一个大图像,我加载到UIImageView。该图像为PNG格式,其@2x文件大小为:384K。图像为5119x2413像素。用户可以使用按压手势缩放图像。图像如此大的原因是,当通过挤压变换UIImageView时,质量将保持不变 我遇到的问题是,在某些设备上,尤其是在最新的iPodtouch上,它在试图显示此屏幕时会崩溃 我已经通过仪器运行了应用程序,并使用泄漏/分配配置文件对其进行了分析。使用该应用程序时,该应用程序的活动字节通常在4MB左右,但当您查看包含UIImageView的屏幕时,

我有一个大图像,我加载到UIImageView。该图像为PNG格式,其@2x文件大小为:384K。图像为5119x2413像素。用户可以使用按压手势缩放图像。图像如此大的原因是,当通过挤压变换UIImageView时,质量将保持不变

我遇到的问题是,在某些设备上,尤其是在最新的iPodtouch上,它在试图显示此屏幕时会崩溃

我已经通过仪器运行了应用程序,并使用泄漏/分配配置文件对其进行了分析。使用该应用程序时,该应用程序的活动字节通常在4MB左右,但当您查看包含UIImageView的屏幕时,它的活动字节数将达到40MB!一旦图像出现在屏幕上,内存就会恢复到4MB左右

我遇到的问题是,在旧设备和受内存限制的设备(如iPod Touch)上,我的应用程序被系统终止的次数比没有更多,还有一些系统服务(如SpringBoard)

我已尝试使用
[UIImage imageWithContentsOfFile:][/code>而不是
[UIImage imageNamed:][/code>加载图像,因为我知道
[UIImage imageNamed:][/code>会缓存图像,但这没有任何效果

第一次尝试显示图像时导致的实时内存峰值似乎导致内存不足,并且应用程序被操作系统终止

我很好奇如何解决这个问题,以及苹果如何处理在Photos应用程序中加载大型图像的问题

为了记录在案,我正在使用ARC和iOS 5.1.1以及XCode 4.4.1


请看这个。我已经做了这个例子,效果非常好。尝试平铺图像,尝试示例代码!从WWDC 2010开始,这将有所帮助。