定义FastImageCache FICImageFormats的最佳实践?

时间:2014-03-06 19:50:31

标签: ios objective-c image uiimageview

我正在使用Path的FastImageCache库(https://github.com/path/FastImageCache),以便将已预先调整大小的图片缓存,以便在UIImageView中使用。

要使用FIC,您可以定义包含大量数据的FICImageFormat,包括图像大小。为了获得最佳性能,此图片大小应与图片将用于的UIImageView的大小相同。

这就产生了一个鸡蛋和鸡蛋的问题:设置FIC的代码(在AppDelegate中或者在你的应用程序的其他基本初始化工作的任何地方,应该是吗?)知道你应用程序其余部分UIImageView的大小?这有一个明显的缺点,即应用程序的启动代码与UI实现细节的紧密耦合。

另一种方法是,您可以让UI实现一个定义方法的协议,例如

+(NSArray *)imageFormats;

将返回一个FICImageFormat个对象数组,表示该位UI所需的所有图像格式。然后启动代码只需要知道哪些类实现了该协议,以获得应用程序所需的完整图像格式列表。

第二种方法具有潜在重复FICImageFormat的缺点。对于具有相同尺寸的相同图像格式族具有两种(或更多种)图像格式将是非最佳的。然后你不止一次地缓存完全相同的数据。

您能想到的任何其他方法?最佳做法?欢迎所有的想法!

1 个答案:

答案 0 :(得分:0)

我觉得这里有用的是从设计层面开始 - 你应该同意设计师为任何图像系列提供一套特定的图像格式,然后你就可以得到所有图像格式和系列的中心列表。无论如何你的风格指南。

如果您的代码位于AppDelegate或View层中,那么无关紧要,因为视图层和启动代码都不能确定存在哪种格式,而是您的样式指南。它不再是实现细节,而是外部规范的一部分。