• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于OSX平臺移動信息查詢系統(tǒng)客戶端設(shè)計實踐

      2017-04-22 12:29:03肖旻
      科教導(dǎo)刊·電子版 2016年36期

      肖旻

      摘 要 隨著智能手機的廣泛使用,各種手機應(yīng)用軟件需求越來越多, 本文實現(xiàn)了基于 IOS手機設(shè)備上的移動交通信息線路查詢系統(tǒng),可完成多種方式的線路查詢,介紹了有關(guān)開發(fā)支持環(huán)境以及各環(huán)節(jié)的實現(xiàn)技術(shù)手段并提出后續(xù)需繼續(xù)解決的問題。

      關(guān)鍵詞 iOS Xcode Objective-C

      中圖分類號:TP311 文獻標(biāo)識碼:A

      1引言

      蘋果公司iPhone手機越來越快地占領(lǐng)了現(xiàn)有手機市場的較大份額,它的用戶已不計其數(shù)。隨著在硬件產(chǎn)品上不斷升級開發(fā),基于此的軟件開發(fā)需求也逐漸旺盛起來?;趇OS的開發(fā)語言O(shè)bjective-C和App Store的下載量也逐漸增加,開啟了基于iOS相關(guān)平臺開發(fā)應(yīng)用的更大發(fā)展。手機的普及給人們提供了越來越多的便捷服務(wù),結(jié)合軟件開發(fā)可以使得便捷的服務(wù)最終得以實現(xiàn),本文即實現(xiàn)了基于iOS的交通線路查詢系統(tǒng)手機客戶端的應(yīng)用。

      2應(yīng)用開發(fā)平臺與工具

      本應(yīng)用是基于Mac OS X平臺下的iPhone手機應(yīng)用程序開發(fā),因此需要構(gòu)建一個iPhone應(yīng)用軟件的開發(fā)環(huán)境。本程序使用Xcode開發(fā)平臺、Objective-C編程語言進行編寫,調(diào)試程序使用iPhone模擬器以及iPhone真機。

      Xcode是一個Integrated Development Environment(IDE),即集成開發(fā)環(huán)境,用于開發(fā)基于iOS的iPad、iPhone、iPod touch設(shè)備應(yīng)用程序。其功能在于提供Mac OS X或iPhone OS的項目開發(fā)構(gòu)建平臺,使文檔和代碼之間的結(jié)合更加緊密,并使代碼自動完成,產(chǎn)生與UI控件屬性相應(yīng)的自動生成的功能。開發(fā)工具中所包含的iOS SDK以及iOS模擬器可以從蘋果官網(wǎng)免費下載安裝,但所編寫程序只可運行在iOS模擬器上,想要運行在iOS真機設(shè)備上,就必須注冊蘋果開發(fā)者賬號并購買開發(fā)證書才可運行在真機上,進而發(fā)布到App Store上供用戶下載。iphone ios模擬器無需使用實際的iphone真機就可以測試應(yīng)用軟件。通常不需要直接啟動ios模擬器,它在Xcode運行、調(diào)試應(yīng)用程序時會自動啟動。

      本軟件的開發(fā)所使用的語言是Objective-C語言,通常寫作ObjC、Objective C或Obj-C。Objective-C是擴充C的面向?qū)ο蟮木幊陶Z言。它主要在Mac OS X和GNUstep這兩個使用OpenStep標(biāo)準(zhǔn)的系統(tǒng)使用。Objective-C可以在含有g(shù)cc編譯器的系統(tǒng)下進行編寫和編譯,因為gcc包含Objective-C的編譯器。由于它基礎(chǔ)語法由C語言編寫而成的,運行庫非常小,因此它不會使應(yīng)用程序變得非常臃腫。它與大部分系統(tǒng)相反,大部分OO系統(tǒng)本身使用極大的VM執(zhí)行時間會取代了整個系統(tǒng)的運作,Objective-C則不同。Objective-C和C++也有所不同,Objective-C不支援運算子多載(它不支持ad-hoc多型),但與Java相同的地方是,Objective-C只有單繼承,沒有多繼承。Categories和protocols不但可以提供很多多重繼承的好處,而且缺點較少,例如額外執(zhí)行時間過重和二進制的不兼容。

      系統(tǒng)調(diào)試使用iphone ios模擬器,它是iphone SDK中重要的一個工具,無需使用實際的iphone就可以測試應(yīng)用軟件。測試時不需要直接啟動ios模擬器,它在Xcode運行(或是調(diào)試)應(yīng)用程序時會自動啟動。Xcode會自動將應(yīng)用程序安裝到它上面。iphone ios模擬器能夠模仿實際的iphone設(shè)備的真實行為,模擬器本身使用了MAC上各種庫(如QuickTime)進行渲染以便效果與實際的iphone保持一致。此外,模擬器上測試的應(yīng)用程序會編譯為x86代碼,這是模擬器可以理解的字節(jié)碼。

      建立本應(yīng)用還需要框架庫的支持,本應(yīng)用程序使用系統(tǒng)自帶的框架以及庫編寫界面和主要功能,主要引入的框架有Foundation、QuartzCore、UIKit、MapKit和百度地圖API等,還增加了私有封裝庫編寫地圖定位、公交線路查詢等功能。

      3軟件設(shè)計及實現(xiàn)

      本應(yīng)用軟件實現(xiàn)的架構(gòu)模式為MVC(Model-View-Controller)三層架構(gòu),該模式把一個應(yīng)用的輸入、處理、輸出流程,按照Model、View、Controller的方式進行分離,這樣一個應(yīng)用將被分成三個層——模型層、視圖層、控制層。

      使用MVC的目的是將數(shù)據(jù)模型(M)和用戶界面(V)的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。控制器(C)存在的目的則是確保M和V的同步,一旦M改變,V將進行同步更新。

      本軟件設(shè)計分為兩個部分:UI設(shè)計與編碼設(shè)計。

      UI即User Interface(用戶界面)的簡稱。UI設(shè)計指對軟件的人機交互、操作邏輯、界面美觀的整體設(shè)計,還包括用戶與界面之間的交互關(guān)系。即使程序功能再強大,UI體驗如果不完美,也會影響一款好的應(yīng)用程序被用戶的接受度,可見UI設(shè)計的重要性。本應(yīng)用程序架構(gòu)設(shè)計為主界面推送到不同的功能模塊,各模塊之間相互獨立,因此進入某一功能模塊后想要進入另一功能模塊就必須先返回到主界面再進入其他模塊。本軟件主要使用了UITableView、UIWebView、UIScrollView等UI控件。

      根據(jù)用戶需求,調(diào)研以及結(jié)合實際,本程序編碼設(shè)計主要包含以下幾個功能模塊的實現(xiàn):(1)系統(tǒng)主界面;(2)網(wǎng)頁瀏覽;(3)交通線路查詢;(4)天氣預(yù)報等模塊。

      以交通線路查詢模塊為例,它主要包括公交、駕車、步行等出行方式的線路查詢。一般的線路查詢流程為:用戶可以檢索公交、駕車、步行等方式查詢線路,并且在地圖上畫上行走路線并有換乘等信息提示,同時還能定位用戶的位置,讓用戶看起來一目了然。本程序使用第三方庫由百度提供的百度地圖移動版API,它的服務(wù)也是免費的。

      幾種出行方式的動作處理類似,這里以公交線路查詢實現(xiàn)為例:首先獲取用戶在文本框內(nèi)輸入起始與目的地,根據(jù)這兩地通過相應(yīng)實現(xiàn)方法向百度服務(wù)器發(fā)送公交查詢的請求:若用戶選擇起始地為用戶位置時,此時應(yīng)設(shè)置(下轉(zhuǎn)第176頁)(上接第159頁)起始節(jié)點為用戶坐標(biāo),查詢時需要發(fā)送所在城市名,在此城市名獲取通過定位坐標(biāo)將之反地理編碼獲取到城市名,當(dāng)定位成功后發(fā)送反地理編碼請求,然后在其回調(diào)函數(shù)中獲取城市名。部分實現(xiàn)方法如下:

      - (void)onGetAddr Result:(BMKAddrInfo*)result errorCode:(int)error

      { if (error == BMKErrorOk)

      {

      self.cityString = result.addressComponent.city;

      }

      }

      發(fā)送公交查詢請求后,會調(diào)用公交查詢的回調(diào)函數(shù)如下:

      - (void)onGetTransitRouteResult:(BMKPlanResult*)result errorCode:(int)error

      通過點擊界面不同分行可以將線路方案畫在地圖上,通過標(biāo)注類RouteAnnotation繼承于BMKPointAnnotation,折線類BMKPolyline即可在地圖上畫出標(biāo)記與相應(yīng)查詢線路。

      4真機測試

      應(yīng)用程序的最終運行均是在iPhone真機或者iPod touch上實現(xiàn)的,由于模擬器運行程序與真機運行程序?qū)嶋H效果有一定偏差,因此必須保證程序在真機上的運行效果。首先將iPhone連接電腦,然后Xcode運行設(shè)備,選擇iPhone真機,點擊Run運行程序完成測試,本應(yīng)用的真機實際效果達到了預(yù)期。

      5結(jié)語

      本設(shè)計中的一個難點在于模擬器與真機的差別,下載到真機上運行結(jié)果與模擬器有可能有不一致地方,主要有iOS版本的兼容性問題。在軟件功能實現(xiàn)中,線路查詢使用WiFi網(wǎng)絡(luò)比蜂窩數(shù)據(jù)網(wǎng)絡(luò)加載地圖的速度更快,和網(wǎng)絡(luò)環(huán)境相關(guān)性較大;天氣預(yù)報顯示在網(wǎng)絡(luò)信號不佳的情況下進行刷新時也會出現(xiàn)加載問題,因此,基于網(wǎng)絡(luò)環(huán)境的差異問題還需做進一步探討。

      參考文獻

      [1] [美]Gene Backlin.iPhone&iPad高級編程[M].岳紅,凌沖譯.北京:清華大學(xué)出版社,2012.

      [2] [美]Wei-Meng Lee.iOS 4編程入門經(jīng)典[M].張龍譯.清華大學(xué)出版社,2012.

      [3] Richaard Dan Pilone.Head First iPhone Development[M].北京:東南大學(xué)出版社,2012.

      [4] [美]哈靈頓.iOS 4實戰(zhàn)[M].北京:人民郵電出版社,2012.

      [5] 楊正洪,鄭齊心,李建國.Objective-C程序設(shè)計[M].清華大學(xué)出版社,2011.

      [6] [美]克萊爾.Objective-c2.0Mac 和 iOS 開發(fā)實踐指南[M].李強譯.北京:機械工業(yè)出版社,2011.

      [7] Reffel Kikulu.Ios sdk 4/Xcode 4 應(yīng)用程式開發(fā)范例集for iPhone/iPad[M]博碩文化股份有限公司,2011.

      保康县| 昌都县| 华坪县| 建湖县| 彰化县| 东城区| 慈利县| 屯昌县| 厦门市| 玛曲县| 江永县| 云南省| 舒兰市| 望谟县| 淳安县| 永昌县| 梧州市| 梅河口市| 彝良县| 南川市| 景德镇市| 自治县| 呼玛县| 即墨市| 嘉鱼县| 宝兴县| 晋中市| 黑山县| 邳州市| 福鼎市| 包头市| 永康市| 新疆| 乌拉特前旗| 宜川县| 婺源县| 崇义县| 青阳县| 晋城| 和田市| 景泰县|