Как определить, на каком iPhone работает мое приложение?

Я огляделся, чтобы найти, как я могу узнать, на каком 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!


person Constantin    schedule 09.02.2011    source источник


Ответы (1)