В моей папке ресурсов 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
.
На iPad filename
— это /path/to/bundle/foo~ipad.png
, а на iPad с сетчаткой загружается версия @2x
.
То есть он загружает изображение, на которое я надеюсь, но pathForResource
обрабатывает модификатор устройства, а imageWithContentsOfFile
обрабатывает модификатор масштаба.
Я хотел бы знать, почему. Документация из pathForResource
ничего не говорит о модификаторах устройств, а документация из imageWithContentsOfFile
ничего не говорит о модификаторах масштаба.
Есть ли отдельная документация, в которой точно указано, что делает каждая функция?