答案 0 :(得分:3)
您可能误解了仪器分析告诉您的内容。 4.3%的95%不是很多。这一切都取决于发生了什么。如果您没有遇到严重的减速,请不要进行不必要的优化!
但是,问自己的一个问题是,您是否真的需要一系列物理图像数据。确实需要花费大量时间将图像文件解压缩到其UIImage数据位图中。 (更不用说你可以通过这种方式运行自己的内存。)为什么不存储一个字符串数组(你的pathForResource
字符串)并仅在需要时获取图像?
最后我要指出我在这里看到一个模式:你正在获取图像13,然后是图像12,然后是图像11,依此类推。因此,手动执行此操作的代码非常愚蠢,因为如果您告诉我索引编号,我可以告诉您算法哪个图像对应于它。
答案 1 :(得分:0)
您正在读取所有这些文件,解压缩它们,为未压缩版本分配内存,并将它们存储在数组中。你需要所有这些吗?你可以按需加载它们而不是一次性加载它们吗?这将减少初始化阵列导致的重大打击。
此外,请确保您的图像不大于实际显示的图像。如果要加载大图像只显示在一个小区域中,则加载和解压缩该大图像需要更长时间。
答案 2 :(得分:0)
尝试使用此代码使用[NSBundle mainBundle] pathForResource
:...替换:
NSString *bundleRoot = [[NSBundle mainBundle] bundlePath];
例如获取一些图像文件路径
UIImage *img= [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@\myImage.png",bundleRoot]];