Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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
Ios 加载50+;UIScrollview应用程序中文档目录中的图像发生崩溃_Ios_Objective C_Uiscrollview - Fatal编程技术网

Ios 加载50+;UIScrollview应用程序中文档目录中的图像发生崩溃

Ios 加载50+;UIScrollview应用程序中文档目录中的图像发生崩溃,ios,objective-c,uiscrollview,Ios,Objective C,Uiscrollview,从UIScrollview应用程序的文档目录中加载了50多个图像,导致崩溃。获取“与资产的连接被中断或资产死亡(内存警告)”。有谁能建议加载这些图像的最佳方法吗?提前谢谢。我的代码在Objective-C中。在您的情况下,显示图像的最佳选项是使用UITableView或UICollectionView,因为当单元格不再显示在屏幕上时,它们会在内部将单元格出列。 . 在您的情况下,UIScrollView不会将其子视图排挤出队列,因此屏幕始终包含图像,这会消耗更多内存,并且操作系统会因内存使用量过

从UIScrollview应用程序的文档目录中加载了50多个图像,导致崩溃。获取“与资产的连接被中断或资产死亡(内存警告)”。有谁能建议加载这些图像的最佳方法吗?提前谢谢。我的代码在Objective-C中。

在您的情况下,显示图像的最佳选项是使用UITableView或UICollectionView,因为当单元格不再显示在屏幕上时,它们会在内部将单元格出列。 .
在您的情况下,UIScrollView不会将其子视图排挤出队列,因此屏幕始终包含图像,这会消耗更多内存,并且操作系统会因内存使用量过大而关闭(崩溃)您的应用程序。

您应该使用UITableView而不是UIScrollView。
但是,如果它们是非常大的图像,仅加载一个图像时就会崩溃,除非对其进行预处理(调整大小)。

为什么需要将它们全部加载到内存中?你不能直接加载正在显示的内容吗?使用
UICollectionView
UITableView
将有助于完成此任务。现在,当我在UICollectionView中滚动时有20到30个图像时,我使用UICollectionView。我收到了记忆警告。请尽快提出建议。您是否可以共享您希望使用CollectionView实现的所需输出?(提供所需布局的一些屏幕截图)“内存警告”的主要原因之一可能是图像的大小。如果图像的大小非常大,可能会占用大量内存。在集合视图中显示图像之前,可能需要压缩图像。