Обнаружение экрана сетчатки / iPhone 4 в iPhone SDK - PullRequest
23 голосов
/ 17 июля 2010

В своем приложении я загружаю некоторые изображения из Интернета (если быть точным, с моего сервера), чтобы сэкономить пропускную способность и особенно память на телефоне, я предоставляю их в двух разрешениях: 480x320 для «старого» iPhone серии и в 960x640 для iPhone 4 с дисплеем сетчатки. Теперь мне нужно иметь возможность определять из приложения, когда оно работает на устройстве, которое поддерживает экран сетчатки. Как я мог это сделать?

Я думал об использовании приведенного ниже фрагмента кода, который вернул бы мне определенный идентификатор устройства, например, например. «iPhone3», но тогда я бы ограничил обнаружение iPhone4 и должен был бы обновить этот код для любого последующего устройства с дисплеем сетчатки.

size_t size;

// Set 'oldp' parameter to NULL to get the size of the data
// returned so we can allocate appropriate amount of space
sysctlbyname("hw.machine", NULL, &size, NULL, 0); 

// Allocate the space to store name
char *name = malloc(size);

// Get the platform name
sysctlbyname("hw.machine", name, &size, NULL, 0);

// Place name into a string
NSString *machine = [NSString stringWithCString:name];

Есть ли лучшее решение (может быть, это очень очевидно, но я его пропустил)?

Ответы [ 11 ]

0 голосов
/ 15 июня 2011

Если вы используете Cocos2d, попробуйте следующее:

[[CCDirector sharedDirector] winSizeInPixels];

Возвращается CGSize со свойствами width и height.

...