Особенно интересными частями проекта, которые опубликовал Стефан, являются:
Строковые значения, которые вы, вероятно, увидите:
/*
Platforms
iPhone1,1 -> iPhone 1G
iPhone1,2 -> iPhone 3G
iPod1,1 -> iPod touch 1G
iPod2,1 -> iPod touch 2G
*/
Как получить одно из этих значений:
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine encoding: NSUTF8StringEncoding];
free(machine);
Затем вы можете проверить начало платформы на @"iPhone"
или @"iPod"
и сказать, есть ли у вас устройство с GPS или нет. Я бы не советовал сопоставлять всю строку с тем, что вы хотите, потому что в следующий раз, когда появится устройство (например, этим летом, скорее всего), вы не сможете сопоставить его без изменения кода.
Кроме того, если вы их еще не видели, у Эрики Садун (автора проекта) есть несколько отличных статей по разработке для iPhone на ArsTechnica.com и по крайней мере одна книга об этом.