I just created a test app and tested.
So for devices without retina:
ImageName.png
- For iPhone/iPod
ImageName~ipad.png
-- For iPad
For devices with retina display:
[email protected]
- For iPhone/iPod
ImageName@2x~ipad.png
-- For iPad
And you can still use @2x if your iPhone high resolution image and iPad high resolution image have the same size.
To load the image just use [UIImage imageNamed:@"ImageName.png"];
I just tested it on iOS simulator for iOS 5.1, 5.0 and 4.3.
By the way why you should use @2x and nothing more.
The main thing because you shouldn't use the same graphics on iPhone and iPad, because iPhone and iPad has different size. And if you will use the same size the graphics will already done for you iPad retina display (if you previously use iPhone retina display). If you will images with different size, so you will use different image names for iPhone and iPad. So in this side you need just add @2x suffix.
That's why you should use just @2x suffix. - these are my thoughts.
+(UIImage*) deviceIndependentImageNamed:(NSString*)file;
or similar, you can also scale the image in code instead of using multiple files – Singularize