¿Cómo NSBundle pathForResource: ofType: y UIImage imageWithContentsOfFile: manejan la escala y los modificadores de dispositivo?

En mi carpeta de recursos iOS, tengo las imágenes:

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

Los cargo con:

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

Experimentalmente:

En el iPhone,filename es/path/to/bundle/foo~iphone.png, y en la retina iPhone, carga el@2x versión.

En el iPad,filename es/path/to/bundle/foo~ipad.png, y en la retina iPad, carga la@2x versión.

Es decir, carga la imagen que espero, peropathForResource maneja el modificador de dispositivo, yimageWithContentsOfFile Maneja el modificador de escala.

Me gustaría saber por qué. losdocumentación depathForResource no dice nada sobre los modificadores de dispositivo, y ladocumentación deimageWithContentsOfFile No dice nada sobre los modificadores de escala.

¿Hay documentación separada que indique con precisión lo que hace cada función?

Respuestas a la pregunta(1)

Su respuesta a la pregunta