自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS SDK使用指南:利用UIDevice及NSLocale訪問設(shè)備數(shù)據(jù)

譯文
移動(dòng)開發(fā) iOS
本篇教程演示了如何訪問關(guān)鍵性iOS設(shè)備及用戶信息,包括設(shè)備型號(hào)、iOS版本號(hào)及用戶語言選擇等。在診斷應(yīng)用程序問題或者為用戶提供定制型服務(wù)時(shí),這些信息可能起到至關(guān)重要的作用,本文將帶大家了解如何讓自己的應(yīng)用獲取此類關(guān)鍵數(shù)據(jù)。

教程說明

  • 使用工具: iOS SDK

  • 執(zhí)行難度: 普通

  • 操作時(shí)間: 15 到30分鐘

設(shè)備數(shù)據(jù)的重要性

首先要明確一個(gè)問題:為什么我們需要訪問設(shè)備數(shù)據(jù)?

[[89416]]如果在使用中遇到問題,移動(dòng)應(yīng)用用戶往往會(huì)通過電子郵件將自己的遭遇或者求助信息發(fā)送給開發(fā)人員。在這種情況下,郵件內(nèi)容越翔實(shí)、信息量越大、對(duì)于設(shè)備及系統(tǒng)環(huán)境的描述越具體,開發(fā)人員也就越容易給出科學(xué)的處理方案。舉例來說,如果大家的應(yīng)用程序需要接入互聯(lián)網(wǎng)方能運(yùn)行,而用戶在徒步旅行途中發(fā)來郵件稱應(yīng)用無法正常工作,那么結(jié)論就變得非常清晰:用戶無法通過熱點(diǎn)接入互聯(lián)網(wǎng),因此應(yīng)用沒能順利啟動(dòng)。另外,了解用戶使用的iOS版本、應(yīng)用程序版本以及國(guó)家、語言設(shè)定也很有幫助,這能讓開發(fā)人員很快弄清使用者的設(shè)備狀況,進(jìn)而簡(jiǎn)化應(yīng)用問題的診斷流程。

除了前面提到的bug診斷與問題追蹤,通過UIDevice或者NSLocale訪問信息還能有效改善應(yīng)用程序的界面(例如根據(jù)用戶所在地自動(dòng)設(shè)定不同風(fēng)格的界面)外觀及實(shí)際表現(xiàn)。

了解UIDevice 類

大家與UIDevice類的初次會(huì)面可能來自移動(dòng)設(shè)備的定向功能,不過除此之外,UIDevice還提供了多種其它屬性、類函數(shù)及通告模式,幫助我們?nèi)轿涣私庠O(shè)備狀況。從檢測(cè)電池電量到定位設(shè)備與用戶面部的距離,UIDevice所做的工作就是為應(yīng)用程序提供用戶及設(shè)備的一切信息。UIDevice類還能夠收集關(guān)于設(shè)備的各種具體細(xì)節(jié),例如機(jī)型及iOS版本等。在接下來的教程中,大家會(huì)發(fā)現(xiàn)其中大部分屬性都對(duì)開發(fā)工作具有積極的輔助作用。

了解 NSLocale 類

NSLocale類幫助我們的應(yīng)用根據(jù)用戶所在地的文化與語言習(xí)慣提供最令人滿意的服務(wù)效果。通過及時(shí)調(diào)整貨幣類型、小數(shù)點(diǎn)分隔符、時(shí)間及日期格式等,應(yīng)用程序能夠?yàn)橛脩魩沓鲱A(yù)期的智能工作效果,而這一切都是成功軟件必須考慮的人文因素。另外,NSLocale還能夠用于用戶所在的地理位置,當(dāng)用戶聯(lián)系開發(fā)者尋求幫助時(shí),所在地也是很重要的支持信息之一。

獲取設(shè)備信息

我們先從獲取設(shè)備機(jī)型(檢測(cè)iPhone、iPodTouch及iPad)與iOS版本入手。下列代碼可通過UIDevice獲取到設(shè)備的具體型號(hào)。

  1. UIDevice *currentDevice = [UIDevice currentDevice]; 
  2. NSString *model = [currentDevice model]; 
  3. NSString *systemVersion = [currentDevice systemVersion]; 

在***行中,UIDevice會(huì)返回用戶設(shè)備的實(shí)時(shí)運(yùn)行狀態(tài)實(shí)例。以此為基礎(chǔ),我們能夠訪問機(jī)型及系統(tǒng)版本等屬性信息,進(jìn)而掌握這類最關(guān)鍵的設(shè)備數(shù)據(jù)。

獲取用戶語言種類

接下來,我們嘗試檢索用戶的語言種類及所在地設(shè)置信息。

  1. NSArray *languageArray = [NSLocale preferredLanguages]; 
  2. NSString *language = [languageArray objectAtIndex:0]; 
  3. NSLocale *locale = [NSLocale currentLocale]; 
  4. NSString *country = [locale localeIdentifier]; 

想獲得用戶的***語言,我們需要使用NSLocale中的prefferedLanguages類函數(shù),它能夠返回用戶當(dāng)前語言設(shè)定中的信息。而用戶的當(dāng)前位置或者所在國(guó)家、地區(qū)信息則通過NSLocale對(duì)象獲取。在實(shí)例中,類函數(shù)localeIdentifier會(huì)返回一條特定代碼,其中包含用戶所在國(guó)家/地區(qū)信息。

獲取應(yīng)用程序版本信息

***,讓我們看看用戶正在使用的應(yīng)用程序是哪個(gè)版本。

  1. NSString *appVersion = [[NSBundle mainBundle] 
  2. objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey]; 

應(yīng)用程序中的info.plist文件保存著當(dāng)前應(yīng)用版本信息,只要利用kCFBundleVersionKey對(duì)mainBundle進(jìn)行訪問,即可返回正確的應(yīng)用程序版本結(jié)果。

記錄設(shè)備數(shù)據(jù)

接下來,我們要將收集到的設(shè)備數(shù)據(jù)匯總并記錄。

  1. NSString *deviceSpecs = 
  2.     [NSString stringWithFormat:@"%@ - %@ - %@ - %@ - %@"
  3.     model, systemVersion, language, country, appVersion]; 
  4.   
  5. NSLog(@"Device Specs --> %@",deviceSpecs); 

在上述代碼實(shí)例中,每一條信息都被打包成字符串,這樣便于直接顯示在控制臺(tái)上。在實(shí)例應(yīng)用中,大家可能希望這些信息以標(biāo)題或文本內(nèi)容的形式顯示在反饋郵件中。

總結(jié)

在與應(yīng)用程序用戶的交流當(dāng)中,開發(fā)人員掌握的設(shè)備信息越多、越具體,提出解決方案也就變得越容易。用戶的技術(shù)水平參差不齊,因此常常難以準(zhǔn)確表述自己所遇到的麻煩。通過詳細(xì)了解他們的設(shè)備狀況,開發(fā)人員能夠更好地幫助他們解決問題,借而為用戶提供更好的服務(wù)與產(chǎn)品使用樂趣。除了文章開頭所談到的理由,事實(shí)上訪問設(shè)備數(shù)據(jù)也能幫助我們更好地協(xié)調(diào)同一套系統(tǒng)環(huán)境下多款應(yīng)用之間的相互作用。大家有什么問題或者建議,不妨在評(píng)論欄中與其他讀者朋友分享。

原文鏈接:

http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-accessing-device-data-with-uidevice-and-nslocale/

責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2013-04-12 02:54:04

微信開放平臺(tái)iOS

2013-04-12 03:15:34

微信開放平臺(tái)Android

2022-09-29 09:07:08

DataGrip數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)庫(kù)

2012-12-26 12:41:14

Android開發(fā)WebView

2009-12-28 17:40:10

WPF TextBox

2010-09-06 14:24:28

ppp authent

2011-07-21 14:57:34

jQuery Mobi

2021-07-27 10:09:27

鴻蒙HarmonyOS應(yīng)用

2009-12-31 17:17:45

Silverlight

2021-01-12 15:19:23

Kubernetes

2011-06-20 13:06:58

2017-01-04 15:22:57

TrimPath模板引擎

2010-06-03 17:27:36

Hadoop命令

2010-08-04 15:37:31

Flex圖表

2010-08-05 15:40:21

FlexBuilder

2010-08-04 14:28:01

Flex組件

2019-11-13 12:39:26

Python 開發(fā)編程語言

2024-02-04 00:00:00

Loki性能查詢

2022-06-23 08:01:36

FlaskSocketIOSwift

2009-11-30 13:15:27

PHP模板Smarty
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)