Possible Duplicate:
Determine device (iPhone, iPod Touch) with iOS

我正在制作一款利用iPhone(可能还有iPod touch第二代)的点对点蓝牙功能的游戏.然而,为了阻止用户try 在iPod第一代和iPhone2G上玩多人游戏,我需要判断特定的设备型号.

[[UIDevice currentDevice]型号]只会告诉我设备是"iPhone"还是"iPod touch".有没有办法判断具体的设备型号,比如:"iPhone3GS"、"iPod touch 1代"或其他什么.

EDIT:

UIDevice有一个类别(我认为它是由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中获得批准.

推荐答案

最完整的UIDevice(硬件)类别可能是http://github.com/erica/uidevice-extension/(埃里卡·萨顿(Erica Sadun)著):

[[UIDevice currentDevice] platformType]   // ex: UIDevice4GiPhone
[[UIDevice currentDevice] platformString] // ex: @"iPhone 4G"

Ios相关问答推荐

Flutter WebRTC:GetUserMedia()不适用于Safari和IOS设备

在SwiftUI中动态隐藏列表的空部分

SWIFT AVFoundation翻转相机功能不起作用

JSON响应中的键有时为Int,有时为字符串

Flutter 应用程序中带有Firebase的GoogleService-Info.plist中缺少CLIENT_ID、REVERSED_CLIENT_ID和ANDROID_CLIENT-ID

Xcode 15阻止我的应用程序运行:由于实时模式录制的高比率,丢失了1条日志(log)/路标消息?

在 iOS 上以后台模式安排任务(屏幕时间 API)

由于缺少 libarclite_iphonesimulator.a 文件,将 XCode 升级到 14.3 后无法在模拟器上运行 Flutter 应用程序

核心媒体基础知识,了解 CMSampleBuffer、CMBlockBuffer 和 CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer

查找东南亚语言(泰语、高棉语、老挝语、缅甸语)中的单词边界

使用 AVCaptureDeviceTypeBuiltInTripleCamera 时 Select 合适的相机进行条码扫描

iOS按钮和navigationLink在List中相邻

`Task` 在内部调用异步函数时阻塞主线程

UIButton在iOS7中没有显示突出显示

Select UITableViewCell 时 UIView backgroundColor 消失

UIButton 事件.有什么不同?

UITableView:从空白部分隐藏标题

iOS应用程序每隔一次启动就会崩溃,找不到错误

如何为 UILabel 的背景 colored颜色 设置动画?

使用 xib 创建可重用的 UIView(并从情节提要中加载)