Как NSBundle pathForResource: ofType: и UIImage imageWithContentsOfFile: обрабатывают масштаб и модификаторы устройства?

В моей папке ресурсов iOS у меня есть изображения:

foo~iphone.png
foo@2x~iphone.png
foo~ipad.png
foo@2x~ipad.png

Я загружаю их:

NSString *fileName = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:fileName];

Экспериментально:

На iPhone,filename является/path/to/bundle/foo~iphone.pngи на сетчатке iPhone, он загружает@2x версия.

На iPadfilename является/path/to/bundle/foo~ipad.pngи на сетчатке iPad, он загружает@2x версия.

То есть он загружает изображение, на которое я надеюсь, ноpathForResource обрабатывает модификатор устройства, иimageWithContentsOfFile обрабатывает модификатор масштаба.

Я хотел бы знать почему.документация изpathForResource ничего не говорит о модификаторах устройства, адокументация изimageWithContentsOfFile ничего не говорит о модификаторах масштаба.

Есть ли отдельная документация, которая точно указывает, что делает каждая функция?

Ответы на вопрос(1)

Ваш ответ на вопрос