Подтвердить что ты не робот

Знание типа устройства - Retina/non-Retina

Возможный дубликат:
Обнаружение отображения сетчатки

Как узнать, имеет ли устройство экран сетчатки или нет из объектного кода C?

4b9b3361

Ответ 1

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
    && [[UIScreen mainScreen] scale] >= 2.0) {
    // Retina
} else {
    // Not Retina
}

Ответ 2

Вы можете проверить свойство scale на [UIScreen mainScreen], если оно равно 2.0, которое вы используете на сетчатке, если это 1.0, вы не являетесь. Вы также можете получить масштаб из текущего контекста CoreGraphics.

Ответ 3

Я не думаю, что вы можете определить это напрямую. Вы должны сделать это из информации о модели, которую вы можете получить из sysctlbyname (см. Страницы руководства iOS). Например:

sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);

вернет вам строку типа "iPhone3,1", на которой есть сетчатый экран или "iPhone 2,1", который не имеет.