Como NSBundle pathForResource: ofType: e UIImage imageWithContentsOfFile: lidar com modificadores de escala e dispositivo?

Na minha pasta de recursos do iOS, tenho as imagens:

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

Eu carrego-os com:

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

Experimentalmente:

No iPhone,filename é/path/to/bundle/foo~iphone.png, e no iPhone da retina, carrega o@2x versão.

No iPad,filename é/path/to/bundle/foo~ipad.png, e no iPad retina, carrega o@2x versão.

Isto é, carrega a imagem que eu espero, maspathForResource manipula o modificador de dispositivo eimageWithContentsOfFile lida com o modificador de escala.

Eu gostaria de saber porque. odocumentação dopathForResource não diz nada sobre modificadores de dispositivo, e odocumentação doimageWithContentsOfFile não diz nada sobre modificadores de escala.

Existe documentação separada que indica precisamente o que cada função faz?

questionAnswers(1)

yourAnswerToTheQuestion