0

次のコードの出力はどうなりますか。

NSString *deviceType = [UIDevice currentDevice].model;
NSLog(@"Device Type: %@", deviceType);

iPhone 4では「iPhone」と表示されますが、iPhone4SまたはiPhone5では何が出力されますか?iPhone4Sまたは5デバイスを持っていません。しかし、iPhoneのすべてのバージョンに通話機能を実装するには、それを知る必要があります。

ありがとう。

4

3 に答える 3

3

iPhone 4では「iPhone」と表示されますが、iPhone4SまたはiPhone5では何が出力されますか?

また「iPhone」。

ドキュメント。)

于 2012-11-28T13:19:21.647 に答える
1

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";

電話5GSM-iPhone5,1

iPhone 5CDMA-iPhone5,2

iPod 5-iPod5,1

iOSファイル名から取得した情報。http://osxdaily.com/2012/09/19/ios-6-ipsw-direct-download-links/を確認してください

于 2012-11-28T13:28:40.087 に答える
0

iPhone4 / 4SとiPhone5を区別しようとしている場合は、デバイスのモデルではなく、画面サイズを確認する必要があります。

于 2012-11-28T13:29:49.887 に答える