4

我想检测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

4

1 回答 1

2

好的,听起来您要使用的方法是使用 Erica Sadun 创建的类别,该类别位于https://github.com/erica/uidevice-extension/

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

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

从 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/

编辑:使用设备模拟器的示例屏幕截图: 注意:在我的@interface 行上方在此处输入图像描述 也有。#import "UIDevice-Hardware.h"

于 2012-10-23T11:20:01.063 回答