覆盖UIImage imageNamed - 我的选择是什么?

Nir*_*att 1 objective-c uiimage imagenamed ios objective-c-category

基本上我的代码大量使用[UIImage imageNamed]默认情况下从应用程序包中提取图像.

现在我希望从Documents(或库或其他)深处的目录中返回图像 - 而不是主包.由于有很多imageNamed调用实例,我正在考虑为此目的扩展(读取替换)UIImage ImageNamed实现.

我已经完成了这个但是不能完全弥补我应该做什么,什么是最好的:

  1. 制作一个UIImage类别
  2. 创建UIImage的子类
  3. 方法调整

我也不知道是否需要照顾@ 2x图像.我目前的捆绑包包括一堆,我想我的实现也必须要处理它.但不确定如何.

mel*_*sam 5

最干净,最优雅,最容易维护的长期解决方案是在UIImage上使用一个类别.在UIImage上定义自定义方法,然后使用"查找和替换"将所有imageNamed调用替换为新方法.

不要使用调配(它会引入奇怪的,未记录的错误)并且很难维护或调试.(另外,如果你调酒,它会在地方打破,你希望使用imageNamed的默认实现).

由于您不需要实例方法,因此无需为您尝试执行的操作创建子类UIImage.