如何确定我的应用程序运行在哪个iPhone上?

时间:2011-02-09 08:18:38

标签: ios-simulator iphone-4 device-detection

我四处寻找,我怎么知道我的应用程序运行的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!

1 个答案:

答案 0 :(得分:1)

从未为iPhone编码,但我用Google搜索并发现:Apple Developer: UIDevice Class

或许这有助于:iPhone - How do I detect the iPhone version?