2011-02-09 33 views
0

我环顾四周,发现我如何知道我的应用程序运行在哪个iPhone上(iPhone 3G,iPhone3GS,iPhone 4)根据设备完成其他操作。首选的方法大多是这样的:如何确定我的应用程序在哪个iPhone上运行?

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-代码和模拟器。所以它可以运行模拟器作为iPhone 4,iPhone3GS或iPhone3G。如何在运行时检测到这一点?到目前为止的任何解决方案或解决方法?

编辑:即使这里的解决方案http://iphonedevelopment.blogspot.com/2009/05/device-detection.html当然不能正常工作了,因为模拟器也可以是iPhone4!

回答

相关问题