將是什麼下面的代碼的輸出:設備類型的文本適用於iPhone 4S和iPhone 5
NSString *deviceType = [UIDevice currentDevice].model;
NSLog(@"Device Type: %@", deviceType);
在iPhone 4,它會打印出「iPhone」,但在iPhone 4S或iPhone 5會是怎樣的輸出?我沒有iPhone 4S或5設備。但我需要知道它在iPhone的所有版本中實現呼叫功能。
謝謝。
將是什麼下面的代碼的輸出:設備類型的文本適用於iPhone 4S和iPhone 5
NSString *deviceType = [UIDevice currentDevice].model;
NSLog(@"Device Type: %@", deviceType);
在iPhone 4,它會打印出「iPhone」,但在iPhone 4S或iPhone 5會是怎樣的輸出?我沒有iPhone 4S或5設備。但我需要知道它在iPhone的所有版本中實現呼叫功能。
謝謝。
的UIDevice心不是有用使用
#include <sys/types.h>
#include <sys/sysctl.h>
- (NSString *)deviceModel
{
NSString *deviceModel = nil;
char buffer[32];
size_t length = sizeof(buffer);
if (sysctlbyname("hw.machine", &buffer, &length, NULL, 0) == 0) {
deviceModel = [[NSString alloc] initWithCString:buffer encoding:NSASCIIStringEncoding];
}
return [deviceModel autorelease];
}
我也是不知道的5恆但我知道他們是獨一無二的:
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:@"iPhone3,3"]) return @"Verizon iPhone 4";
if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
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:@"iPad2,1"]) return @"iPad 2 (WiFi)";
if ([platform isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)";
if ([platform isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)";
if ([platform isEqualToString:@"iPad2,4"]) return @"iPad 2";
if ([platform isEqualToString:@"iPad3,1"]) return @"iPad-3G (WiFi)";
if ([platform isEqualToString:@"iPad3,2"]) return @"iPad-3G (4G)";
if ([platform isEqualToString:@"iPad3,3"]) return @"iPad-3G (4G)";
if ([platform isEqualToString:@"i386"]) return @"Simulator";
if ([platform isEqualToString:@"x86_64"]) return @"Simulator";
電話5 GSM - iPhone5,1
iPhone 5的CDMA - iPhone5,2
的iPod 5 - iPod5,1
信息從IOS文件名中獲取。請檢查http://osxdaily.com/2012/09/19/ios-6-ipsw-direct-download-links/
感謝Daij-Djan,我認爲它會在以後的作品中幫助我。 – sumon
http://stackoverflow.com/a/12561119/716216 –
如果您嘗試區分iPhone4/4S & iPhone5,則應檢查屏幕尺寸,而不是設備型號。
這不是一個好的解決方案。如果您試圖分辨iPhone 4S和iPhone 5之間的差異,這種方法可行,但使用屏幕尺寸/比例,您無法檢測到iPad Mini與iPad 2。按照@ Daij-Djan的說明檢測機器ID答案是要走的路。 –
有趣的答案不錯1 :) @ H2CO3 – Rushabh
OP真的讓你努力工作在這一個沒有他!無論如何,正確的+1。 –
在它說的文檔中?你確定它會在iPhone 5上打印iPhone嗎? – sumon