问题
If I assign an image to a UIImage view in a xib, is that image cached so that if I access the image using UIImage imageNamed: I am getting cached Image data?
I'm using iOS 5.1
回答1:
UIImage imageNamed:
does its own cacheing of any images you use. The first time you use it for a given image, it'll populate the cache, and subsequently it'll use the cached version.
UIImageView
in Interface Builder takes a string to tell it what image to use. It appears that the object that is actually encoded in the Xib to represent the image is a private class called UIImageNibPlaceholder
, which contains a private NSString variable called runtimeResourceName
. It's this class that implements the initWithCoder:
method which is used when the system is loading objects from a xib.
So, the question is, inside UIImageNibPlaceholder
's initWithCoder:
, does it use the imageNamed:
function of UIImage
? I think it's reasonable to assume that it does, since the thing stored in the xib is the string runtimeResourceName
, and the system is turning that string into an actual image when loading the xib.
This post on the Apple developer forums seems to clarify the point (under NDA so I can't copy it here). I couldn't find any publicly accessible information on the subject.
来源:https://stackoverflow.com/questions/10398547/are-images-assigned-in-a-xib-cached