0

我环顾四周寻找,我如何知道我的应用程序在哪部 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!

4

1 回答 1

1

从未为 iPhone 编码,但我用谷歌搜索并找到了这个:Apple Developer: UIDevice Class

或者这可能会有所帮助:iPhone - 如何检测 iPhone 版本?

于 2011-02-09T08:38:57.167 回答