2

如果我将图像分配给 xib 中的UIImage视图,是否会缓存该图像,以便如果我使用UIImage imageNamed 访问图像:我正在获取缓存的图像数据?

我正在使用 iOS 5.1

4

1 回答 1

6

UIImage imageNamed:对您使用的任何图像进行自己的缓存。第一次将它用于给定图像时,它将填充缓存,随后它将使用缓存的版本。

UIImageView在 Interface Builder 中需要一个字符串来告诉它要使用什么图像。看起来,实际在 Xib 中编码以表示图像的对象是一个名为 的私有类UIImageNibPlaceholder,其中包含一个名为 的私有 NSString 变量runtimeResourceName。正是这个类实现了initWithCoder:系统从 xib 加载对象时使用的方法。

那么,问题来了, inside UIImageNibPlaceholderinitWithCoder:它使用了 的imageNamed:功能UIImage吗?我认为假设它是合理的,因为存储在 xib 中的东西是 string runtimeResourceName,并且系统在加载 xib 时将该字符串转换为实际图像。

苹果开发者论坛上的这篇文章似乎澄清了这一点(在保密协议下,所以我不能在这里复制它)。我找不到有关该主题的任何可公开访问的信息。

于 2012-05-02T12:04:50.583 回答