Я не хочу обсуждать здесь, если лучше определить аппаратную модель или возможности; Я считаю, что лучше всего это зависит от конкретной потребности. Во всяком случае, если вы хотите, чтобы проверить на аппаратной модели, то вы можете использовать следующую UNIX системный вызов:
#include <sys/utsname.h>
int uname(struct utsname *name);
Один из членов из struct utsname
является machine
, оканчивающихся нулем строку, которая идентифицирует аппаратное обеспечение (для информация о других участниках см. мужчина 3 не указано); в случае iPhone 4 это будет «iPhone3,1», для 3GS «iPhone2,1», для 3G «iPhone1,2», для iPod Touch 4-го поколения «iPod4,1», третьего поколения «iPod3,1» »и второе поколение« iPod2,1 ».
struct utsname platform;
int rc;
rc = uname(&platform);
if(rc == -1){
/* handle error */
}
else{
fprintf(stdout, "hardware platform: %s", platform.machine);
}
Вы можете проверить ссылку здесь http://stackoverflow.com/questions/3177634/iphone-how-do-i-detect-the-iphone-version – Hiren