可能的复制品:
用 iOS 确定设备(iPhone,iPod Touch)
我正在做一个游戏,利用点对点的蓝牙功能的 iPhone (可能是 iPod touch 第二代)。然而,为了阻止用户在 iPod 1和 iPhone 2G 上玩多人游戏,我需要检查一下具体的设备型号。
[[ UIDevicecurrentDevice ]模型]只能告诉我这个设备是“ iPhone”还是“ iPod touch”。有没有一种方法来检查特定的设备型号,比如: “ iPhone3GS”,“ iPod touch 第一代”或者其他什么。
编辑:
UIDdevice 有一个分类(我认为它是由 Erica Sadun 创建的,我不会为此居功) ,它使用以下代码来获得特定的设备模型。您可以在这里找到整个类别以及其他有用的东西: https://github.com/erica/uidevice-extension
#include <sys/types.h>
#include <sys/sysctl.h>
@implementation UIDevice (Hardware)
/*
Platforms
iPhone1,1 -> iPhone 1G
iPhone1,2 -> iPhone 3G
iPod1,1 -> iPod touch 1G
iPod2,1 -> iPod touch 2G
*/
- (NSString *) platform
{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
free(machine);
return platform;
}
这个工具和使用它的应用程序最近在 AppStore 中得到了批准。