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!