Wie behandeln NSBundle pathForResource: ofType: und UIImage imageWithContentsOfFile: Skalierungs- und Gerätemodifikatoren?
In meinem iOS-Ressourcenordner befinden sich die folgenden Bilder:
foo~iphone.png
foo@2x~iphone.png
foo~ipad.png
foo@2x~ipad.png
Ich lade sie mit:
NSString *fileName = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:fileName];
Experimentell:
Auf dem iPhonefilename
ist/path/to/bundle/foo~iphone.png
und auf dem Retina iPhone lädt es das@2x
Ausführung.
Auf dem iPadfilename
ist/path/to/bundle/foo~ipad.png
und auf dem Retina iPad lädt es das@2x
Ausführung.
Das heißt, es lädt das Bild, das ich hoffe, aberpathForResource
behandelt den Geräte-Modifikator undimageWithContentsOfFile
behandelt den Skalenmodifikator.
Ich würde gerne wissen warum. DasDokumentation vonpathForResource
sagt nichts über Gerätemodifikatoren, und dieDokumentation vonimageWithContentsOfFile
sagt nichts über Skalenmodifikatoren aus.
Gibt es eine separate Dokumentation, in der genau angegeben ist, was die einzelnen Funktionen ausführen?