Ios 如何准确检测iDevice模型?

Ios 如何准确检测iDevice模型?,ios,xcode,model,uidevice,Ios,Xcode,Model,Uidevice,我想检测用户拥有的iDevice,然后将设备名称放入ui标签。使用以下代码,应用程序仅检测iPhone/iPad/iPod。我希望iPhone 4/iPod 3G/iPad 1G。。。或者确切的名字(iphone3.1/ipod2.0/ipad2.4) 这是我的密码: iDevice.text = [UIDevice currentDevice]. localizedModel; 我试着这么做 iDevice.text = [UIDevice currentDevice]. model; 但

我想检测用户拥有的
iDevice
,然后将
设备名称
放入
ui标签
。使用以下代码,应用程序仅检测iPhone/iPad/iPod。我希望iPhone 4/iPod 3G/iPad 1G。。。或者确切的名字(iphone3.1/ipod2.0/ipad2.4)

这是我的密码:

iDevice.text = [UIDevice currentDevice]. localizedModel;
我试着这么做

iDevice.text = [UIDevice currentDevice]. model;

但是小巷里说iPhone和我喜欢iPhone 3.1,所以听起来你想要使用的方法是使用Erica Sadun创建的分类,该分类位于

在我开始学习如何使用它之前,我将介绍一些关于类别的信息。苹果在这里提供了关于分类的文档

通过在接口文件中声明方法,可以向类中添加方法 在类别名称下,并在实现文件中定义它们 以相同的名字。类别名称表示方法是 添加到别处声明的类,而不是新类。你不能, 但是,可以使用类别将其他实例变量添加到 班级

从github下载项目,并将以下两个文件添加到项目中:

UIDevice-Hardware.h
UIDevice-Hardware.m
您将使用以下方法之一:

- (NSString *) platform;
- (NSString *) hwmodel;
- (NSUInteger) platformType;
- (NSString *) platformString;
因此,您需要将UIDevice Hardware.h导入到要使用该方法的文件中。您可以使用该方法返回NSString值并将该值分配给标签,因此您可以执行类似的操作

mylabel.text = [[UIDevice currentDevice] platformString]
下面是另一个对类别有很好介绍的链接:

编辑:使用设备模拟器的示例屏幕截图:
注意:在我的@interface行上方也导入了“UIDevice Hardware.h”。

我尝试了所有这些,但没有一个对我有效:(你检查了我链接的接受答案了吗?我过去曾成功地使用过它。“最完整的UIDevice(Hardware)类别可能是”我确实需要这个,但我不知道如何使用标签。我将UIDevice Hardware.h和UIDevice Hardware.m添加到我的项目中,我将“UIDevice Hardware.h”文件导入到我的.m文件中,然后我将mylabel.text=[[UIDevice currentDevice]platformString]添加到-(void)viewDidLoad中,我的应用程序崩溃:(我的错误是什么?我必须对-(NSString*)平台;-(NSString*)hwmodel;-(NSInteger)platformType;-(NSString*)platformString;?对于您的实例,您需要
iDevice.text=[[UIDevice currentDevice]platformString]
这是我写的一个通用标签名。它可能会崩溃,因为我的变量名没有定义。我有iDevice.text=[[UIDevice currentDevice]platformString];这太难描述了,所以我画了一幅图:你能创建一个帖子或者你正在使用的代码的要点吗?我将尝试快速地重新创建这个。