Как определить, на каком iPhone запущено мое приложение? - PullRequest
0 голосов
/ 09 февраля 2011

Я оглянулся, чтобы узнать, как узнать, на каком iPhone запущено мое приложение (iPhone 3G, iPhone3GS, iPhone 4), чтобы выполнять дополнительные действия в зависимости от устройства.Предпочтительный метод был в основном примерно таким:

size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0); 
char *name = (char *)malloc(size);
sysctlbyname("hw.machine", name, &size, NULL, 0);
NSString *machine = [NSString stringWithCString:name];
free(name);
if([machine compare:@"iPhone3,1"]==NSOrderedSame){
    //iPhone 4
}else if([machine compare:@"i386"]==NSOrderedSame){
    //Simulator
}else{
    //iPhone 3GS, 3G...
 }
NSLog(@"Device %@", machine);

До сих пор это работало нормально, но теперь мы обновили X-Code и симулятор.Таким образом, можно запустить симулятор под iPhone 4, iPhone3GS или iPhone3G.Как это можно обнаружить во время выполнения?Какие-нибудь решения или обходные пути до сих пор?

Редактировать: Даже решение, как здесь http://iphonedevelopment.blogspot.com/2009/05/device-detection.html, конечно, больше не работает должным образом, поскольку симулятор может быть также iPhone4!

1 Ответ

1 голос
/ 09 февраля 2011

Никогда не кодировал для iPhone, но я гуглил и нашел это: Apple Разработчик: UIDevice Class

Или, может быть, это поможет: iPhone - Как определить версию iPhone?

...