2012-01-17 4 views
0

を検出する方法について説明します。 私はそれを検出するために次のコードを使用します。.Iは、GSM/WCDMAとCDMA可能な場合を区別したいネットワーク(GSM/CDMA)を使用して、iPhone4Sのを検出する方法はありスプリント/ベライゾン/ KDDI iPhone4Sのモード

size_t size; 
sysctlbyname("hw.machine", NULL, &size, NULL, 0); 
char *machine = malloc(size); 
sysctlbyname("hw.machine", machine, &size, NULL, 0); 
NSString *platform = [NSString stringWithUTF8String:machine]; 
if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; 
if ([platform isEqualToString:@"iPhone4,3"]) return @"iPhone 4S cdma"; 

答えて

0

はい、正しい方法でコーディングしています。参考として、他のデバイスコードを以下に示します。

- (NSString *) platformString{ 
NSString *platform = [self platformString]; 
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:@"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:@"i386"])   return @"Simulator"; 
return platform; 
関連する問題