【问题标题】:Are Images assigned in a xib cached?在 xib 中分配的图像是否缓存?
【发布时间】:2012-05-01 13:43:22
【问题描述】:

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

我使用的是 iOS 5.1

【问题讨论】:

    标签: ios ios5 interface-builder uiimage xib


    【解决方案1】:

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

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

    那么,问题是,在UIImageNibPlaceholderinitWithCoder: 内部,是否使用了UIImageimageNamed: 函数?我认为假设它是合理的,因为存储在 xib 中的是字符串runtimeResourceName,并且系统在加载 xib 时将该字符串转换为实际图像。

    Apple 开发者论坛上的This post 似乎澄清了这一点(根据 NDA,所以我不能在这里复制它)。我找不到任何关于该主题的公开信息。

    【讨论】:

    • 呵呵。我都准备只发布“是”,但后来我找不到太多证据:)
    • 非常有趣的答案!但是,我认为它不使用imageNamed:,因为我有一个用于加载 h568 图像的实用程序,它会调动原始方法,并且在 IB 中设置图像时不会调用它。
    猜你喜欢
    • 2012-01-06
    • 2012-01-28
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    相关资源
    最近更新 更多