如何准确检测iDevice模型?

时间:2012-10-22 19:10:06

标签: ios xcode model uidevice

我想检测用户拥有的iDevice,然后将device name放入UILabel。使用以下代码,应用程序仅检测iPhone / iPad / iPod我喜欢iPhone 4 / iPod 3G / iPad 1G ...或确切名称(iPhone 3.1 / iPod 2.0 / iPad 2.4)......

这是我的代码:

iDevice.text = [UIDevice currentDevice]. localizedModel;

我试过这个

iDevice.text = [UIDevice currentDevice]. model;

但是小巷它说iPhone和我喜欢iPhone 3.1

1 个答案:

答案 0 :(得分:2)

好的,所以听起来你想要使用的方法是使用Erica Sadun创建的类别https://github.com/erica/uidevice-extension/

在我开始使用它之前,我会传递一些关于类别的信息。 Apple提供了有关类别的文档http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/chapters/occategories.html

  

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

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

UIDevice-Hardware.h
UIDevice-Hardware.m

您将使用的方法之一是:

- (NSString *) platform;
- (NSString *) hwmodel;
- (NSUInteger) platformType;
- (NSString *) platformString;

因此,您需要将UIDevice-Hardware.h导入到要使用该方法的文件中。您可以使用该方法返回NSString值并将值赋给标签,因此您可以执行与

类似的操作
mylabel.text = [[UIDevice currentDevice] platformString]

这是另一个对类别有很好介绍的链接:http://mobile.tutsplus.com/tutorials/iphone/objective-c-categories/

编辑:使用设备模拟器进行屏幕截图: enter image description here 注意:我的@interface行上面也有#import "UIDevice-Hardware.h"