Тебе это не нужно.Прежде всего, препроцессор не поможет определить экран Retina, как они определены во время компиляции.Но в любом случае вам это не нужно из-за соглашения Apple.Достаточно иметь просто «close.png» в вашем проекте
NSString *uniquePath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"close.png"];
UIImage *image = [UIImage imageWithContentsOfFile: uniquePath];
Я думаю, вы просто хотите это, хотя
UIImage *image = [UIImage imageNamed:@"close.png"];
Если close.png (и двойной размер close @2x.png) находится в вашем проекте, когда вы его создаете, второй пример - тот, который нужно использовать.Протестируйте, вы увидите, что на телефоне с сетчатки глаза отобразится файл @ 2x