Как 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.

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

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

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

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

15
задан Jesse Beder 18 June 2012 в 21:01
поделиться