IOS 特定於裝置的開發:UIDevice

haibo wang發表於2014-12-22

UIDevice類展示了一些關鍵的特定於裝置的屬性,包括使用的iPhone ,Ipad或iPod Touch型號、裝置名稱、以及OS名稱和版本。

他是一種一站式解決方案,用於提取出某些系統詳細資訊。每個方法都是一個例項方法,他們是使用UIDevice單例通過[UIDevice currentDevice]呼叫的。

可以通過UIDevice獲取的系統資訊包括下面的這些項。

1.systemName:它用於返回當前使用的作業系統的名稱。對於目前這一代IOS裝置,在平臺上只執行一種OS:iPhone OS.

2.systemVersion:這個值將列出單元上目前安裝的固定版本。

3.model:iPhone 型號返回一個描述其平臺的字串,既iPhone、iPad和iPod Touch.如果將IOS擴充套件到新裝置上,將使用額外的字串描述這些型號。localizedModel提供了該屬性的本地化版本。

4.userInterfaceIdiom:這個屬性表示當前裝置上使用的介面風格,既iPhone或iPad.當Apple提供另外的平臺風格時,可能會引入其他的用語。

5.name:這個字串由使用者指定的iPhone名稱,這個名稱也用於建立裝置的本地主機名。

    UIDevice *device = [UIDevice currentDevice];
    NSLog(@"systemName :%@",device.systemName);
    NSLog(@"systemVersion :%@",device.systemVersion);
    NSLog(@"model :%@",device.model);
    NSLog(@"localizedModel:%@",device.localizedModel);
    NSLog(@"userInterfaceIdiom:%d",device.userInterfaceIdiom);
    NSLog(@"name:%@",device.name);

其輸出值

2014-12-22 10:22:00.301 UIDeviceTest[2526:885673] systemName :iPhone OS
2014-12-22 10:22:00.303 UIDeviceTest[2526:885673] systemVersion :8.1.2
2014-12-22 10:22:00.304 UIDeviceTest[2526:885673] model :iPhone
2014-12-22 10:22:00.304 UIDeviceTest[2526:885673] localizedModel:iPhone
2014-12-22 10:22:00.304 UIDeviceTest[2526:885673] userInterfaceIdiom:0
2014-12-22 10:22:00.409 UIDeviceTest[2526:885673] name:“tato”的 iPhone

對於當前的IOS版本,可以利用一個簡單的布林測試進行風格檢查。下面示例如何實現iPad檢查。它用於測試選擇器一致性,如果可能,將會返回[UIDevice currentDevice].userInterfaceIdiom,否則,返回UIUserInterfaceIdiomPhone.

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

 

相關文章