iOS學(xué)習(xí)——獲取手機(jī)信息(UIDevice、NSBundle、NSLocale)

?iOS的APP的應(yīng)用開(kāi)發(fā)的過(guò)程中,有時(shí)為了bug跟蹤或者獲取用反饋的需要自動(dòng)收集用戶設(shè)備、系統(tǒng)信息、應(yīng)用信息等等,這些信息方便開(kāi)發(fā)者診斷問(wèn)題,當(dāng)然這些信息是用戶的非隱私信息,是通過(guò)開(kāi)發(fā)api可以獲取到的。那么通過(guò)那些api可以獲取這些信息呢,iOS的SDK中提供了UIDevice,NSBundle,NSLocale。

UIDevice

? ? ? ?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ā)工作具有積極的輔助作用。下面的代碼簡(jiǎn)單的使用UIDevice獲取手機(jī)屬性。

在這里我還是要推薦下我自己建的iOS開(kāi)發(fā)學(xué)習(xí)群:680565220,群里都是學(xué)ios開(kāi)發(fā)的,如果你正在學(xué)習(xí)ios ,小編歡迎你加入,今天分享的這個(gè)案例已經(jīng)上傳到群文件,大家都是軟件開(kāi)發(fā)黨,不定期分享干貨(只有iOS軟件開(kāi)發(fā)相關(guān)的),包括我自己整理的一份2018最新的iOS進(jìn)階資料和高級(jí)開(kāi)發(fā)教程

[cpp]?view plain?copy

//設(shè)備相關(guān)信息的獲取??

?NSString?*strName?=?[[UIDevice?currentDevice]?name];??

NSLog(@"設(shè)備名稱:%@",?strName);//e.g.?"My?iPhone"??


?NSString?*strId?=?[[UIDevice?currentDevice]?uniqueIdentifier];??

NSLog(@"設(shè)備唯一標(biāo)識(shí):%@",?strId);//UUID,5.0后不可用??


?NSString?*strSysName?=?[[UIDevice?currentDevice]?systemName];??

NSLog(@"系統(tǒng)名稱:%@",?strSysName);//?e.g.?@"iOS"??


?NSString?*strSysVersion?=?[[UIDevice?currentDevice]?systemVersion];??

NSLog(@"系統(tǒng)版本號(hào):%@",?strSysVersion);//?e.g.?@"4.0"??


?NSString?*strModel?=?[[UIDevice?currentDevice]?model];??

NSLog(@"設(shè)備模式:%@",?strModel);//?e.g.?@"iPhone",?@"iPod?touch"??


?NSString?*strLocModel?=?[[UIDevice?currentDevice]?localizedModel];??

NSLog(@"本地設(shè)備模式:%@",?strLocModel);//?localized?version?of?model??

NSBundle

?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)等。

[cpp]?view plain?copy

//app應(yīng)用相關(guān)信息的獲取??

????NSDictionary?*dicInfo?=?[[NSBundle?mainBundle]?infoDictionary];??

//????CFShow(dicInfo);??


NSString?*strAppName?=?[dicInfo?objectForKey:@"CFBundleDisplayName"];??

NSLog(@"App應(yīng)用名稱:%@",?strAppName);??


NSString?*strAppVersion?=?[dicInfo?objectForKey:@"CFBundleShortVersionString"];??

NSLog(@"App應(yīng)用版本:%@",?strAppVersion);??


NSString?*strAppBuild?=?[dicInfo?objectForKey:@"CFBundleVersion"];??

NSLog(@"App應(yīng)用Build版本:%@",?strAppBuild);??

NSLocale

NSLocale可以獲取用戶的本地化信息設(shè)置,例如貨幣類型,國(guó)家,語(yǔ)言,數(shù)字,日期格式的格式化,提供正確的地理位置顯示等等。下面的代碼獲取機(jī)器當(dāng)前語(yǔ)言和國(guó)家代碼。

[cpp]?view plain?copy

//Getting?the?User’s?Language??

???NSArray?*languageArray?=?[NSLocale?preferredLanguages];??

???NSString?*language?=?[languageArray?objectAtIndex:0];??

NSLog(@"語(yǔ)言:%@",?language);//en??


???NSLocale?*locale?=?[NSLocale?currentLocale];??

???NSString?*country?=?[locale?localeIdentifier];??

NSLog(@"國(guó)家:%@",?country);?//en_US??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容