我想检测用户的iDevice,然后将设备名称放在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
最佳答案 好的,所以听起来你想要使用的方法是使用由Erica Sadun创建的类别,位于
https://github.com/erica/uidevice-extension/
在我开始使用它之前,我将传递一些关于类别的信息. Apple在此提供有关类别的文档http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/chapters/occategories.html
You can add methods to a class by declaring them in an interface file
under a category name and defining them in an implementation file
under the same name. The category name indicates that the methods are
additions to a class declared elsewhere, not a new class. You cannot,
however, use a category to add additional instance variables to a
class.
从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”.