本节书摘来自异步社区《iOS 6高级开发手册(第4版)》一书中的第1章,第1.1节访问基本的设备信息,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.1 访问基本的设备信息
iOS 6高级开发手册(第4版)
UIDevice类展示了一些关键的特定于设备的属性,包括使用的iPhone、iPad或iPod Touch型号、设备名称,以及OS名称和版本。它是一种一站式解决方案,用于提取出某些系统详细信息。每个方法都是一个实例方法,它们是使用UIDevice单例通过[UIDevice currentDevice]调用的。
可以通过UIDevice获取的系统信息包括下面这些项。
systemName:它用于返回当前使用的操作系统的名称。对于目前这一代iOS设备,在平台上只运行一种OS:iPhone OS。Apple还没有更新这个名称,以匹配一般性的iOS品牌重塑举动。
systemVersion:这个值将列出单元上目前安装的固件版本,例如,4.3、5.1.1、6.0等。
model:iPhone型号返回一个描述其平台的字符串,即iPhone、iPad和iPod Touch。如果将iOS扩展到新设备上,将使用额外的字符串描述那些型号。localizedModel提供了该属性的本地化版本。
userInterfaceIdiom:这个属性表示当前设备上使用的界面风格,即iPhone(用于iPhone和iPod Touch)或iPad。当Apple提供另外的平台风格时,可能会引入其他的用语。
name:这个字符串表示由iTunes中的用户指定的iPhone名称,比如“Joe′s iPhone”或“Binky”。这个名称也用于创建设备的本地主机名。
下面给出了几个使用这些属性的示例:
UIDevice *device = [UIDevice currentDevice];
NSLog(@"System name: %@", device.systemName);
NSLog(@"Model: %@", device.model);
NSLog(@"Name: %@", device.name);
对于当前的iOS版本,可以利用一个简单的布尔测试进行风格检查。下面给出了一个示例,说明如何实现iPad检查。它用于测试选择器一致性,如果可能,将会返回[UIDevice currentDevice].userInterfaceIdiom,否则,将返回UIUserInterfaceIdiomPhone:
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
万一这个测试失败,目前可以假定使用的是iPhone/iPod Touch。当Apple发布新的设备家族时,将需要根据更细致的测试更新代码。