如何通过代码找到iPhone/iPod设备型号(3G,3GS,4,4S)?

7
可能重复:
用iOS确定设备(iPhone,iPod Touch) 我尝试获取当前设备型号名称,如3G、3GS、4、4S、iPodTouch(不同的世代)。但是,到目前为止我无法获得准确的结果。你能帮我找出设备型号吗?这里是我用来获取设备模型的代码。
UIDevice *device = [UIDevice currentDevice];
NSString *deviceVersion = [device systemVersion];//Return 4.0.1 and 5.0.1
NSString *deviceName = [device systemName];//Return iPhone, iPod Touch

我该如何获取设备型号 3G、3GS、4、4S、iPod Touch、iPad?


3
这里已经有一个带有很好回答的帖子。请查看这里的Brian Robbins的回答。 - gurooj
有一个在GitHub上的库可以帮助你,https://github.com/erica/uidevice-extension。 - mip
1个回答

14
#import <sys/utsname.h>

NSString*
machineName()
{
    struct utsname systemInfo;
    uname(&systemInfo);

    return [NSString stringWithCString:systemInfo.machine
                              encoding:NSUTF8StringEncoding];
}

结果应该是:

@"i386"      on the simulator
@"iPod1,1"   on iPod Touch
@"iPod2,1"   on iPod Touch Second Generation
@"iPod3,1"   on iPod Touch Third Generation
@"iPod4,1"   on iPod Touch Fourth Generation
@"iPhone1,1" on iPhone
@"iPhone1,2" on iPhone 3G
@"iPhone2,1" on iPhone 3GS
@"iPad1,1"   on iPad
@"iPad2,1"   on iPad 2
@"iPhone3,1" on iPhone 4
@"iPhone4,1" on iPhone 4S

谢谢您,Nithin先生。您的代码运行得非常完美,正如我所期望的那样。非常感谢。 - Gopinath
更新新机型。我的设备中iPhone 5(白色)的代号为iPhone5,2,iPhone 5s(金色)的代号为iPhone6,2。 - Joey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接