是否在缓存的xib中分配了图像?

时间:2012-05-01 13:43:22

标签: ios ios5 interface-builder uiimage xib

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

我正在使用iOS 5.1

1 个答案:

答案 0 :(得分:6)

UIImage imageNamed:会自动缓存您使用的所有图像。第一次将它用于给定图像时,它将填充缓存,随后它将使用缓存版本。

Interface Builder中的

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

所以,问题是,在UIImageNibPlaceholder initWithCoder:内,它是否使用imageNamed:的{​​{1}}函数?我认为这样做是合理的,因为存储在xib中的东西是字符串UIImage,并且系统在加载xib时将该字符串转换为实际图像。

Apple开发人员论坛上的

This post似乎澄清了这一点(根据NDA,我不能在此复制)。我找不到任何关于这个主题的公开信息。