UIDevice 提供了多種屬性、類函數(shù)及狀態(tài)通知,幫助我們?nèi)轿涣私庠O(shè)備狀況。從檢測(cè)電池電量到定位設(shè)備與臨近感應(yīng),UIDevice 所做的工作就是為應(yīng)用程序提供用戶及設(shè)備的一些信息。UIDevice 類還能夠收集關(guān)于設(shè)備的各種具體細(xì)節(jié),例如機(jī)型及 iOS 版本等。其中大部分屬性都對(duì)開(kāi)發(fā)工作具有積極的輔助作用。
//手機(jī)系統(tǒng)版本
NSString *phoneVersion = [[UIDevice currentDevice] systemVersion];
NSLog(@"手機(jī)系統(tǒng)版本 = %@",phoneVersion);
//手機(jī)系統(tǒng)版本 = 8.3
//手機(jī)型號(hào)
NSString* phoneModel = [[UIDevice currentDevice] model];
NSLog(@"手機(jī)型號(hào) = %@",phoneModel);
//手機(jī)型號(hào) = iPhone
//本地設(shè)備模式
NSString *app_LocalModel = [[UIDevice currentDevice] localizedModel];
NSLog(@"本地設(shè)備模式 = %@",app_LocalModel);
//本地設(shè)備模式 = iPhone
bundle 是一個(gè)目錄,其中包含了程序會(huì)使用到的資源。這些資源包含了如圖像、聲音、編譯好的代碼、nib 文件(用戶也會(huì)把 bundle 稱為 plug-in),對(duì)應(yīng) bundle,cocoa 提供了類 NSBundle。一個(gè)應(yīng)用程序看上去和其他文件沒(méi)有什么區(qū)別. 但是實(shí)際上它是一個(gè)包含了 nib 文件,編譯代碼,以及其他資源的目錄。我們把這個(gè)目錄叫做程序的 main bundle。通過(guò)這個(gè)路徑可以獲取到應(yīng)用的信息,例如應(yīng)用名、版本號(hào)等。
//app應(yīng)用相關(guān)信息的獲取
NSDictionary *app_info = [[NSBundle mainBundle] infoDictionary];
NSLog(@"app應(yīng)用相關(guān)信息的獲取 = %@",app_info);
//當(dāng)前應(yīng)用名稱
NSString *app_Name = [app_info objectForKey:@"CFBundleDisplayName"];
NSLog(@"當(dāng)前應(yīng)用名稱 = %@",app_Name);
//當(dāng)前應(yīng)用名稱 = IOS
//當(dāng)前應(yīng)用版本
NSString *app_Version = [app_info objectForKey:@"CFBundleShortVersionString"];
NSLog(@"當(dāng)前應(yīng)用版本 = %@",app_Version);
//當(dāng)前應(yīng)用版本 = 2.2
//當(dāng)前build號(hào)
NSString *app_buildVersion = [app_info objectForKey:@"CFBundleVersion"];
NSLog(@"當(dāng)前build號(hào) = %@",app_buildVersion);
//當(dāng)前build號(hào) = 2.2.7
NSLocale可以獲取用戶的本地化信息設(shè)置,例如貨幣類型,國(guó)家,語(yǔ)言,數(shù)字,日期格式的格式化,提供正確的地理位置顯示等等。下面的代碼獲取機(jī)器當(dāng)前語(yǔ)言和國(guó)家代碼。
//當(dāng)前地區(qū)
NSString *systemCountryCode = [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode];
NSLog(@"當(dāng)前地區(qū) = %@",systemCountryCode);
//當(dāng)前地區(qū) = CN
//當(dāng)前語(yǔ)言
NSString *systemLanguageCode = [[NSLocale currentLocale]objectForKey:NSLocaleLanguageCode];
NSLog(@"當(dāng)前語(yǔ)言 = %@",systemLanguageCode);
//當(dāng)前語(yǔ)言 = zh