虽然在您的应用程序中找到并使用此信息并不是一个好习惯,但有没有办法找到您拥有的iPhone / iPod / iPad型号。例如:2G / 3GS / 4G等
答案 0 :(得分:7)
尝试:
char deviceString[256];
size_t size = 255;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
if (size > 255) { size = 255; }
sysctlbyname("hw.machine", deviceString, &size, NULL, 0);
if (strcmp(deviceString,"iPhone1,1") == 0) { etc... } // 2G
1,2是3G, 2,1是3GS, 3,1是i4等。
答案 1 :(得分:6)
我认为这已经在这里得到了回答:Determine device (iPhone, iPod Touch) with iPhone SDK,虽然我已经添加了一些内容:
- (NSString *) platformString{
NSString *platform = [self platform];
if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G";
if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";
if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4";
if ([platform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";
if ([platform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";
if ([platform isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G";
if ([platform isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G";
if ([platform isEqualToString:@"iPad1,1"]) return @"iPad";
if ([platform isEqualToString:@"i386"]) return @"iPhone Simulator";
return platform;
}
说明最近对家庭的补充。您可以查看everyipod.com,例如specs for iPhone 4以获取平台字符串。
答案 2 :(得分:1)
-[UIDevice model]
,但我不确定它是否会返回比“iPhone”或“iPod Touch”更具体的内容。
答案 3 :(得分:1)
我认为iTunes / Xcode Organizer已经出于某种原因这样做了(至少我似乎记得它正确识别我的旧iPod Touch作为第一代),这绝对不是我的iPhone 3GS的情况。 iPhone配置实用程序也没有帮助。
所以我启动了System Profiler以查看设备是否显示在USB列表中;它确实。它还显示“产品ID”(在我的情况下,0x1294)。我把它输入谷歌并想出了这个:
http://theiphonewiki.com/wiki/index.php?title=Normal_Mode
设备ID
它似乎使用不同的设备ID:
iPhone - 0x1290
iPod touch - 0x1291
iPhone 3G - 0x1292
iPod touch 2G - 0x1293
iPhone 3GS - 0x1294
iPod touch 3G - 0x1299
iPad - 0x129a
iPhone 4 -
iPod touch 4G - 0x129e
Apple TV 2G -