在 xib 中分配的图像是不是缓存?
Posted
技术标签:
【中文标题】在 xib 中分配的图像是不是缓存?【英文标题】:Are Images assigned in a xib cached?在 xib 中分配的图像是否缓存? 【发布时间】:2012-05-01 13:43:22 【问题描述】:如果我将图像分配给 xib 中的 UIImage 视图,是否会缓存该图像,以便如果我使用 UIImage imageNamed: 访问图像,我将获得缓存图像数据?
我使用的是 ios 5.1
【问题讨论】:
【参考方案1】:UIImage imageNamed:
自己缓存您使用的任何图像。第一次将它用于给定图像时,它会填充缓存,随后会使用缓存的版本。
Interface Builder 中的UIImageView
接受一个字符串来告诉它要使用什么图像。看起来实际上在 Xib 中编码以表示图像的对象是一个名为 UIImageNibPlaceholder
的私有类,其中包含一个名为 runtimeResourceName
的私有 NSString 变量。正是这个类实现了initWithCoder:
方法,当系统从xib 加载对象时使用该方法。
那么,问题是,在UIImageNibPlaceholder
的initWithCoder:
内部,是否使用了UIImage
的imageNamed:
函数?我认为假设它是合理的,因为存储在 xib 中的是字符串runtimeResourceName
,并且系统在加载 xib 时将该字符串转换为实际图像。
Apple 开发者论坛上的This post 似乎澄清了这一点(根据 NDA,所以我不能在这里复制它)。我找不到任何关于该主题的公开信息。
【讨论】:
呵呵。我都准备只发布“是”,但后来我找不到太多证据:) 非常有趣的答案!但是,我认为它不使用imageNamed:
,因为我有一个用于加载 h568 图像的实用程序,它会调动原始方法,并且在 IB 中设置图像时不会调用它。以上是关于在 xib 中分配的图像是不是缓存?的主要内容,如果未能解决你的问题,请参考以下文章