Ios CALAyer与CGLayer混淆:在后台操作和保存图像

Ios CALAyer与CGLayer混淆:在后台操作和保存图像,ios,ios5,calayer,quartz-2d,Ios,Ios5,Calayer,Quartz 2d,我正在从网络中提取图像,并希望对它们进行一些操作,例如使用CATTransferM3D添加透视图,以及将两幅图像合成在一起。完成im后,我想将文件保存在内存中,以便在需要时可以将其拉出(例如在tableview单元格中)。我设法从网络上提取图像,并通过制作一个CALayer对其进行操作。经过一点阅读,我有点困惑如何正确地做到这一点,因为这些图像直到需要时才显示,我显然想在工作线程上完成我的工作,这样系统就不会滞后。最好的方法是什么?苹果建议您几乎永远不要尝试自己缓存图像,因为它们在内部缓存图像,

我正在从网络中提取图像,并希望对它们进行一些操作,例如使用CATTransferM3D添加透视图,以及将两幅图像合成在一起。完成im后,我想将文件保存在内存中,以便在需要时可以将其拉出(例如在tableview单元格中)。我设法从网络上提取图像,并通过制作一个CALayer对其进行操作。经过一点阅读,我有点困惑如何正确地做到这一点,因为这些图像直到需要时才显示,我显然想在工作线程上完成我的工作,这样系统就不会滞后。最好的方法是什么?

苹果建议您几乎永远不要尝试自己缓存图像,因为它们在内部缓存图像,您可以保证即使在高内存压力下,缓存也能正常工作

您可以通过
setName:
imagename:
方法使用苹果的内部缓存缓存图像。此外,您应该将映像的本地副本保存到caches目录中的磁盘,这样,如果缓存被清除,您就不需要再次下载它


总之,请使用
imageNamed:
,如果为零,请检查磁盘缓存目录,如果为零,请下载映像。缓存CALayer会使内存变得太脏,

这就是为什么我想先将它们保存为PNG/UIimage。看看缓存,很快,伟大的答案!