Это займет только скриншоты с нормальным (320x480) разрешением. Так что в ответ на 1, да. Устройства старых поколений также могут иметь двойное разрешение, экран просто не может их отображать.
Чтобы сделать снимок экрана с разрешением устройства, вы можете сделать это:
CGSize size = self.view.bounds.size;
CGFloat scale = 1.0f;
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
scale = [[UIScreen mainScreen] scale];
size = CGSizeApplyAffineTransform(size, CGAffineTransformMakeScale(scale, scale));
}
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextScaleCTM(context, scale, scale);
[self.view.layer renderInContext:context];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Двойное разрешение на старых устройствах работает, и будет уменьшено, если отображается на экране. Но не рекомендуется, а просто трата.