У меня есть особая функция в приложении, которое предназначено для работы на iPhone 4 и iPad.У меня еще нет iPad (потому что Apple забыла мою страну), поэтому я должен проверить его на симуляторе.
У меня есть метод, который должен захватывать содержимое основного экрана как CGImageRef.
У меня есть этот метод:
- (CGImageRef)takeScreenshot {
UIWindow *theScreen = [[UIApplication sharedApplication].windows objectAtIndex:0];
UIGraphicsBeginImageContext(theScreen.frame.size);
[[theScreen layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return screenshot.CGImage;
}
Когда я компилирую и тестирую версию приложения iPhone для iPhone, он отлично работает.Но когда я компилирую и тестирую версию iPad на симуляторе iPad, он возвращает черный экран.
Чтобы он работал, мне нужно изменить «objectAtIndex: 0» на «objectAtIndex: 1» во второй строке.
Есть ли логика для этого или это просто ошибка симулятора?Насколько я знаю, индекс 0 всегда является основным экраном.
Есть ли другой способ захвата содержимого основного экрана из другого класса?
заранее спасибо.