版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本科畢業(yè)論文(設(shè)計)題 目: 基于標簽傳遞的地圖區(qū)域化搜索在iOS系統(tǒng)的實現(xiàn)學(xué) 院: 信息工程學(xué)院 專 業(yè): 網(wǎng)絡(luò)工程專業(yè) 姓 名: 指導(dǎo)教師: 2015年 6 月 5 日II基于標簽傳遞的地圖區(qū)域化搜索在iOS系統(tǒng)的實現(xiàn)摘 要通過挖掘用戶位置信息來提供個性化服務(wù)是基于位置的服務(wù)在移動互聯(lián)網(wǎng)中的突破性應(yīng)用。本系統(tǒng)利用標簽傳遞算法,將分散的興趣點構(gòu)建成鄰接拓撲圖,并通過對興趣點的權(quán)重拓展從而形成關(guān)鍵字附近密集子圖,實現(xiàn)地圖區(qū)域化搜索。系統(tǒng)根據(jù)搜索結(jié)果,同時也考慮到用戶需要獲取興趣點詳細信息的可能性,采用動態(tài)加載的方式將興趣點標注在地圖可視區(qū)域內(nèi),用戶可以通過點擊標注圖標來獲取興趣點詳細信息。通過
2、對iOS系統(tǒng)平臺及百度地圖API程序開發(fā)的初步研究,以O(shè)bjective-C為編程語言,以Xcode作為開發(fā)工具,實現(xiàn)了基于標簽傳遞的地圖區(qū)域化搜索系統(tǒng)模型,并在真實環(huán)境中驗證了其實用性,滿足了用戶個性化需求。關(guān)鍵詞: 地圖區(qū)域化搜索 標簽傳遞 基于位置的服務(wù) iOS系統(tǒng) 百度地圖APIThe Implementation of Map Region Search Based on Label Propagation in iOS SystemAbstractLocation based service is a breakthrough in applications of the Mobi
3、le Internet, by mining the users location information to provide personalized service. This system adopts label propagation algorithm, making use of the scattered points of the interest to form adjacency topology, expanding to form some dense sub graphs in the visual area of the map, implementing th
4、e method of regional map search. According to the search results returned, also considering the users need to obtain the detail information of the POIs, dynamic loading method is used to mark the annotations onto the map. In addition, users can click on annotations for detail information about POIs.
5、Finally, based on the iOS platform, preliminary research on the baidu map API programming, and Objective-C programming language, by using Xcode as development tools, the system model based on label propagation algorithom is built performed quite well, and verified the practicality in real environmen
6、ts, realizing personalized area recommendation.Keywords: regional map search label propagation location based service iOS system Baidu map API目 錄 TOC o 1-3 h z u HYPERLINK l _Toc421715742前 言 PAGEREF _Toc421715742 h 1HYPERLINK l _Toc421715743第1章 緒論 PAGEREF _Toc421715743 h 2HYPERLINK l _Toc4217157441.
7、1 選題背景及意義 PAGEREF _Toc421715744 h 2HYPERLINK l _Toc4217157451.1.1 移動互聯(lián)網(wǎng)概念 PAGEREF _Toc421715745 h 2HYPERLINK l _Toc4217157461.1.2 地圖搜索 PAGEREF _Toc421715746 h 2HYPERLINK l _Toc4217157471.1.3 國內(nèi)外研究現(xiàn)狀 PAGEREF _Toc421715747 h 3HYPERLINK l _Toc4217157481.2 設(shè)計目標 PAGEREF _Toc421715748 h 3HYPERLINK l _Toc4
8、217157491.3 項目設(shè)計原則 PAGEREF _Toc421715749 h 4HYPERLINK l _Toc4217157501.3.1 易用性原則 PAGEREF _Toc421715750 h 4HYPERLINK l _Toc4217157511.3.2 自適性原則 PAGEREF _Toc421715751 h 4HYPERLINK l _Toc4217157521.3.3 資源控制原則 PAGEREF _Toc421715752 h 4HYPERLINK l _Toc4217157531.3.4 易擴展性原則 PAGEREF _Toc421715753 h 4HYPERL
9、INK l _Toc4217157541.4 開發(fā)工具及技術(shù)介紹 PAGEREF _Toc421715754 h 4HYPERLINK l _Toc4217157551.4.1 iOS操作系統(tǒng)和iOS SDK PAGEREF _Toc421715755 h 4HYPERLINK l _Toc4217157561.4.2 開發(fā)工具Xcode PAGEREF _Toc421715756 h 5HYPERLINK l _Toc4217157571.4.3 Objective-C語言 PAGEREF _Toc421715757 h 5HYPERLINK l _Toc4217157581.4.4 百度地
10、圖SDK PAGEREF _Toc421715758 h 6HYPERLINK l _Toc4217157591.4.5 Eigen矩陣運算庫 PAGEREF _Toc421715759 h 6HYPERLINK l _Toc421715760第2章 系統(tǒng)分析 PAGEREF _Toc421715760 h 7HYPERLINK l _Toc4217157612.1 需求分析 PAGEREF _Toc421715761 h 7HYPERLINK l _Toc4217157622.2 技術(shù)可行性分析 PAGEREF _Toc421715762 h 7HYPERLINK l _Toc4217157
11、632.3 環(huán)境可行性分析 PAGEREF _Toc421715763 h 8HYPERLINK l _Toc4217157642.3.1 軟件環(huán)境 PAGEREF _Toc421715764 h 8HYPERLINK l _Toc4217157652.3.2 硬件環(huán)境 PAGEREF _Toc421715765 h 8HYPERLINK l _Toc4217157662.4 設(shè)計分析 PAGEREF _Toc421715766 h 8HYPERLINK l _Toc4217157672.5 系統(tǒng)流程圖 PAGEREF _Toc421715767 h 10HYPERLINK l _Toc421
12、715768第3章 系統(tǒng)概要設(shè)計 PAGEREF _Toc421715768 h 12HYPERLINK l _Toc4217157693.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計 PAGEREF _Toc421715769 h 12HYPERLINK l _Toc4217157703.2 數(shù)據(jù)類設(shè)計 PAGEREF _Toc421715770 h 14HYPERLINK l _Toc4217157713.3 系統(tǒng)的結(jié)構(gòu)設(shè)計 PAGEREF _Toc421715771 h 15HYPERLINK l _Toc421715772第4章 系統(tǒng)詳細設(shè)計與實現(xiàn) PAGEREF _Toc421715772 h 17HYPE
13、RLINK l _Toc4217157734.1 iOS開發(fā)過程中常用到的控件 PAGEREF _Toc421715773 h 17HYPERLINK l _Toc4217157744.2 視圖生命周期 PAGEREF _Toc421715774 h 18HYPERLINK l _Toc4217157754.3 主界面詳細設(shè)計 PAGEREF _Toc421715775 h 19HYPERLINK l _Toc4217157764.4 搜索導(dǎo)航頁面詳細設(shè)計 PAGEREF _Toc421715776 h 21HYPERLINK l _Toc4217157774.4.1 UITableViewC
14、ontroller簡介 PAGEREF _Toc421715777 h 21HYPERLINK l _Toc4217157784.4.2 UITableViewCell簡介 PAGEREF _Toc421715778 h 22HYPERLINK l _Toc4217157794.5 地圖區(qū)域化搜索 PAGEREF _Toc421715779 h 25HYPERLINK l _Toc4217157804.5.1 標簽傳遞算法 PAGEREF _Toc421715780 h 25HYPERLINK l _Toc4217157814.5.2 詳細設(shè)計實現(xiàn) PAGEREF _Toc421715781
15、h 27HYPERLINK l _Toc4217157824.6 興趣點顯示 PAGEREF _Toc421715782 h 29HYPERLINK l _Toc421715783第5章 軟件測試 PAGEREF _Toc421715783 h 38HYPERLINK l _Toc4217157845.1 功能測試 PAGEREF _Toc421715784 h 38HYPERLINK l _Toc4217157855.2 版本兼容性測試 PAGEREF _Toc421715785 h 38HYPERLINK l _Toc4217157865.3 iPhone屏幕尺寸適配測試 PAGEREF
16、_Toc421715786 h 39HYPERLINK l _Toc4217157875.4 測試實施 PAGEREF _Toc421715787 h 39HYPERLINK l _Toc4217157885.4.1 測試計劃 PAGEREF _Toc421715788 h 40HYPERLINK l _Toc4217157895.4.2 測試策略 PAGEREF _Toc421715789 h 40HYPERLINK l _Toc4217157905.4.3 測試用例 PAGEREF _Toc421715790 h 41HYPERLINK l _Toc4217157915.4.4 設(shè)備效率
17、PAGEREF _Toc421715791 h 43HYPERLINK l _Toc4217157925.4.5 執(zhí)行效率 PAGEREF _Toc421715792 h 43HYPERLINK l _Toc4217157935.4.6 可靠性 PAGEREF _Toc421715793 h 44HYPERLINK l _Toc4217157945.4.7 兼容性 PAGEREF _Toc421715794 h 44HYPERLINK l _Toc4217157955.5 測試結(jié)論 PAGEREF _Toc421715795 h 44HYPERLINK l _Toc421715796第6章 結(jié)
18、論 PAGEREF _Toc421715796 h 45HYPERLINK l _Toc421715797謝 辭 PAGEREF _Toc421715797 h 47HYPERLINK l _Toc421715798參考文獻 PAGEREF _Toc421715798 h 48PAGE 57前 言近幾年來,隨著科學(xué)技術(shù)的發(fā)展,尤其是移動互聯(lián)網(wǎng)的高速發(fā)展,人們的日常生活甚至社會的方方面面都發(fā)生了翻天覆地的變化。3G、4G網(wǎng)絡(luò)以及Wi-Fi技術(shù)的推廣為人們接入互聯(lián)網(wǎng)提供了巨大的便利;智能手機、平板電腦的普及為人們提供了更加便于攜帶的上網(wǎng)設(shè)備;網(wǎng)絡(luò)上遍布著各類資源為人們獲取信息提供了便捷。信息的數(shù)字
19、化給信息的傳遞帶來了便利,互聯(lián)網(wǎng)的出現(xiàn)則極大的促進了信息的傳播。同時,信息獲取的途徑正逐漸變得全面和迅速。用戶只需要打開搜索引擎,輸入想要搜索的關(guān)鍵字,只需要幾秒鐘,搜索引擎就會根據(jù)相關(guān)性強弱分條羅列出搜索結(jié)果,方便用戶瀏覽查閱。地圖搜索服務(wù)是信息檢索領(lǐng)域的一個重要分支?,F(xiàn)有地圖搜索服務(wù)都是通過比較興趣點與搜索關(guān)鍵字的相關(guān)性來進行單一地點推薦,然而像這樣單一推薦的服務(wù)模式已經(jīng)不能滿足用戶的個性化需求。很多時候用戶并沒有一個十分明確的搜索目標或者沒法用一個很準確的詞來概括形容搜索目標,這時基于關(guān)鍵字相關(guān)性的單一推薦就沒法滿足用戶的需求。例如:當用戶在搜索“美食”這個關(guān)鍵字時,有時候用戶并沒有十分
20、明確的目標“要吃什么”,而是想要得到一些推薦結(jié)果。因此我們可以為用戶推薦一些關(guān)鍵字密集區(qū)域,方便用戶進行“比較”和“選擇”,然后確定自己的目標。這種區(qū)域化的地圖搜索服務(wù)模式并不涉及單一興趣點的排序問題,因此也并不涉及到人為操控推薦順序的情況,同時更能滿足用戶的個性化需求。本篇畢業(yè)論文的書寫大體上分為6章,其中第1章闡述了選題的背景和意義;第2章是系統(tǒng)分析;第3章是系統(tǒng)設(shè)計概要;第4、5章是軟件系統(tǒng)設(shè)計實現(xiàn)與測試;第6章結(jié)論是系統(tǒng)開發(fā)過程中的心得體會以及系統(tǒng)前景展望;第1章 緒論隨著科技的進步,互聯(lián)網(wǎng)給人們的生活帶來了巨大的便捷?;趇OS系統(tǒng)和LBS服務(wù),為用戶提供一種新穎的搜索模式,實現(xiàn)個性
21、化區(qū)域推薦,是本系統(tǒng)的終極目標。本章主要介紹了選題的背景、相關(guān)核心技術(shù)、開發(fā)工具以及最終期望實現(xiàn)的系統(tǒng)功能。1.1 選題背景及意義1.1.1 移動互聯(lián)網(wǎng)概念MI(Mobile Internet,移動互聯(lián)網(wǎng)),通俗來講就是將移動通信領(lǐng)域相關(guān)技術(shù)和互聯(lián)網(wǎng)領(lǐng)域相關(guān)技術(shù)二者融合起來,成為一體1-2。MI是一種包含終端、軟件和應(yīng)用三個層面,借助智能移動終端設(shè)備,并采用移動無線通信方式(如4G、Wi-Fi等)獲取業(yè)務(wù)和服務(wù)的新興業(yè)務(wù)形式。其中終端層包括Smart Phone(智能手機)、Tablet(平板電腦)、E-Book(電子書)、MID(Mobile Internet Device,移動互聯(lián)網(wǎng)設(shè)備)
22、,PAD(Portable Android Device,便攜式設(shè)備)等;軟件層包括OS(Operating System,操作系統(tǒng))、Middleware(中間件)、DB(Data Base,數(shù)據(jù)庫)和Security Software(安全軟件)等。應(yīng)用層主要為用戶提供各式各樣的服務(wù),包括休閑娛樂工具、新聞媒體工具、商務(wù)財經(jīng)工具等等。隨著科學(xué)技術(shù)的進步和產(chǎn)業(yè)的發(fā)展,LTE(Long Time Evolution,長期演進,移動通信標準)、4G(4th Generation,第四代移動通信技術(shù))和NFC(Near Field Communication,近場通信)等網(wǎng)絡(luò)傳輸層的若干關(guān)鍵技術(shù)也
23、逐步被納入到移動互聯(lián)網(wǎng)的應(yīng)用范疇之內(nèi)。電子商務(wù)、移動支付、O2O等等互聯(lián)網(wǎng)模式給人們的生活提供了更多個性化的信息,讓人們的生活變得更加充實、更加豐富多彩、更加便利。1.1.2 地圖搜索地圖搜索是基于LBS(Location Based Service,基于位置的服務(wù))的一個典型應(yīng)用3-4。現(xiàn)有地圖搜索應(yīng)用提供了豐富多樣的服務(wù),如公交換乘、駕車導(dǎo)航以及周邊生活信息查詢等等。此外,隨著技術(shù)的進步發(fā)展地圖搜索服務(wù)也出現(xiàn)了新的服務(wù)形式,如交通流量模式可以使用戶一覽全城路況,合理規(guī)劃出行路線;三維、全景模式可以使用戶更加直觀的獲取相關(guān)信息等等。目前地圖搜索服務(wù)的競爭環(huán)境還是相當激烈的,而要提升地圖搜索服
24、務(wù)的競爭優(yōu)勢的話需要做到一下幾點:需要采集更多的POI(Points Of Interest,興趣點)信息;需要提升搜索方面的技術(shù);需要做好用戶體驗環(huán)節(jié)。地圖搜索服務(wù)使得廣大用戶在日常的生活與工作中深受其惠,尤其是給出行的人們帶來了便捷。1.1.3 國內(nèi)外研究現(xiàn)狀本次畢業(yè)設(shè)計的終極目標是實現(xiàn)地圖的區(qū)域化搜索。當然,本系統(tǒng)的搭建是在前人的理論研究基礎(chǔ)之上進行的,下面簡述一下國內(nèi)外在這方面的研究現(xiàn)狀。國內(nèi)進行區(qū)域化搜索研究的人員較少,市場上主流的地圖服務(wù)提供商如百度地圖、高德地圖等也并沒有將相關(guān)技術(shù)運用到產(chǎn)品上,目前尚且處于初級探索階段。國外先前的一些研究人員如Virrantaus K,Markk
25、ula J等等也曾試圖從區(qū)域推薦的角度來為用戶提供搜索結(jié)果,但其算法的核心思想是期望通過生成備選區(qū)域集合,然后比較備選區(qū)域與搜索關(guān)鍵字相關(guān)性強弱,最后將相關(guān)性較強的若干區(qū)域返回給用戶作為區(qū)域化搜索的結(jié)果。同時再輔助以空間數(shù)據(jù)庫,利用R-Tree等算法提升地圖搜索響應(yīng)速度。但這樣的方法適用范圍非常有限,而且還無法自動發(fā)現(xiàn)興趣點分布密集的區(qū)域5-6。此外,還有一些學(xué)者試圖通過搜索2-D空間區(qū)域內(nèi)最密集的k個點來實現(xiàn)區(qū)域化搜索,即包含k個點的最優(yōu)密集子圖,但該方法存在著效率低下、k值選擇困難等問題。也有學(xué)者利用機器學(xué)習聚類算法(如DBSCAN,OPTISC等)檢索出聚類簇作為區(qū)域搜索結(jié)果,且取得了較
26、不錯的效果,但也存在著處理高維數(shù)據(jù)低效率的問題??傊獙崿F(xiàn)高效率的地圖區(qū)域化搜索還有很多問題亟需找到解決方案。1.2 設(shè)計目標隨著3G、4G網(wǎng)絡(luò)的覆蓋以及移動互聯(lián)網(wǎng)的興起,傳統(tǒng)上網(wǎng)模式已經(jīng)不能滿足用戶需求,我們正逐步踏入便捷的移動互聯(lián)時代。同時,手機、平板電腦成為深受人們喜愛的主要移動終端設(shè)備,這給移動互聯(lián)網(wǎng)打下了堅實的基礎(chǔ),也是本次畢業(yè)設(shè)計選擇iOS系統(tǒng)作為平臺的主要原因之一。本系統(tǒng)利用的是一種稱為基于關(guān)鍵字標簽傳遞的地圖區(qū)域化搜索算法,該算法的創(chuàng)新之處在于將地圖上原本孤立的興趣點構(gòu)建成無向鄰接拓撲圖,然后利用標簽傳遞算法傳遞關(guān)鍵字權(quán)重,從而可以得到興趣點附近關(guān)鍵字密度,并利用此信息構(gòu)建關(guān)
27、鍵字密集區(qū)域,實現(xiàn)地圖的區(qū)域化搜索。本次系統(tǒng)設(shè)計的目標是基于iOS系統(tǒng)實現(xiàn)個性化的地圖區(qū)域化搜索功能。預(yù)期獲得的效果是:實現(xiàn)用戶位置的定位及顯示(反Geo編碼);用戶在搜索框內(nèi)輸入需要搜索的關(guān)鍵字,然后點擊搜索按鈕后,系統(tǒng)經(jīng)過算法處理就會在地圖上顯示出若干推薦區(qū)域,顏色越深的區(qū)域表明相關(guān)性越強(即子圖密集程度越大),顏色越淺的區(qū)域表明相關(guān)性越差(即子圖密集程度越小);同時還可以在地圖可視區(qū)域內(nèi)動態(tài)顯示標注興趣點(即隨著地圖的縮放,興趣點可以迅速動態(tài)的加載)等核心功能。此外,導(dǎo)航欄、動畫效果等輔助功能也在本次系統(tǒng)設(shè)計的考慮之中,致力于使系統(tǒng)更加完善、實用性更強。1.3 項目設(shè)計原則1.3.1 易
28、用性原則設(shè)計本系統(tǒng)的初衷是方便用戶使用并為用戶進行個性化效果推薦,因此在調(diào)查了用戶的各項需求后,以用戶需求為核心進行系統(tǒng)功能設(shè)計。此外,當系統(tǒng)具有一定的實用性后,還可以考慮在此基礎(chǔ)上進行創(chuàng)新性功能擴展。1.3.2 自適性原則為了方便用戶的使用,每個功能都可由用戶自主控制,參數(shù)也可由用戶自行配置,因此本系統(tǒng)具有很強的靈活性,系統(tǒng)會根據(jù)用戶的使用習慣,記錄并分析使用數(shù)據(jù),然后對系統(tǒng)的相關(guān)參數(shù)進行調(diào)整。1.3.3 資源控制原則本系統(tǒng)在iOS平臺實現(xiàn),由于iOS系統(tǒng)為了保證程序運行的流暢性,對程序的CPU和內(nèi)存使用率進行了一定的限制,所以在開發(fā)的過程中需要考慮如何節(jié)省資源開銷。1.3.4 易擴展性原則
29、本系統(tǒng)的實現(xiàn)采用經(jīng)典的MVC(Model-View-Controller,模型-視圖-控制器)架構(gòu),其優(yōu)點是可擴展性強,各模塊的分離更利于進行軟件優(yōu)化、靈活性強。1.4 開發(fā)工具及技術(shù)介紹1.4.1 iOS操作系統(tǒng)和iOS SDKiOS系統(tǒng)是蘋果公司(Apple Inc)旗下的手持移動操作系統(tǒng)。2007年的MacWorld開發(fā)者大會上蘋果公司首次公布了該移動操作系統(tǒng),其最初意圖主要是設(shè)計給iPhone手機使用。但是伴隨著iPhone巨大的商業(yè)成功以及所帶來的巨大商業(yè)利潤,后來它被陸續(xù)套用到iPod touch(一種音樂播放設(shè)備)、iPad(一種手持平板電腦)以及Apple TV(一種高清電視機
30、頂盒)等一系列Apple公司研發(fā)的產(chǎn)品上。iOS系統(tǒng)和Mac OS X操作系統(tǒng)(蘋果電腦專用)都沿襲自類Unix商業(yè)操作系統(tǒng),但是蘋果用戶可以在網(wǎng)絡(luò)上免費獲取到該系列系統(tǒng)。目前最新版本的iOS系統(tǒng)是8.3,并且據(jù)Apple公司可靠消息稱iOS 9版本目前正在測試中,相信不久就會對用戶開放下載。iOS系統(tǒng)依靠著簡單易用的操作界面、令人震撼的豐富功能和深入核心的安全保障,令其一舉成為iPhone、iPad和iPod touch設(shè)備的強大平臺基礎(chǔ),也構(gòu)建起了蘋果公司的封閉生態(tài)系統(tǒng)。目前所有流行的移動操作系統(tǒng)中,包含應(yīng)用程序數(shù)量最多的平臺是iOS系統(tǒng)。iOS平臺形成較其他平臺早,因此擁有數(shù)量極其龐大的
31、移動App,而且?guī)缀趺款怉pp都達到數(shù)千款的數(shù)量級,同時這一數(shù)字還在與日劇增。iOS平臺依靠數(shù)量巨大的優(yōu)質(zhì)App吸引了大量忠誠的手機用戶,盡管其他競爭對手(比如Android、Windows Phone平臺)近年來做出了不少創(chuàng)新嘗試,但iOS系統(tǒng)內(nèi)置的眾多優(yōu)秀技術(shù)和功能(例如,語音識別、指紋識別等等)讓Apple設(shè)備一直引領(lǐng)手機行業(yè)的發(fā)展并保持著遙遙領(lǐng)先的地位。iOS SDK(Software Development Kit,軟件開發(fā)工具包)是由蘋果公司向開發(fā)者提供創(chuàng)建iPhone和iPad應(yīng)用程序的軟件開發(fā)包,其中包含了許多豐富的系統(tǒng)框架和相關(guān)封裝完善的API(Application Pro
32、gramming Interface,應(yīng)用程序編程接口),供開發(fā)者在創(chuàng)建程序的時候使用。首個iOS SDK于2008年發(fā)布,該SDK目前需要在Mac OS X Leopard及以上版本系統(tǒng)并且搭載有Intel(英特爾)處理器的機器上才能運行(大概在07年以前,Apple公司一直采用的是IBM的Power系列芯片)。其他類型的操作系統(tǒng),包括微軟公司的Windows系列操作系統(tǒng)、開源的Linux系列操作系統(tǒng)、商業(yè)的Unix系列操作系統(tǒng)甚至是舊版本的Mac OS X操作系統(tǒng)都不被支持。iOS SDK本身是可以從蘋果公司官網(wǎng)(或者App Store)免費獲取并下載的,SDK中包含了系統(tǒng)中各種基本框架、
33、接口,開發(fā)者可以輕松構(gòu)建出各種App。目前最新版本的SDK是8.3。1.4.2 開發(fā)工具XcodeXcode是蘋果公司于2003年向開發(fā)人員免費提供的一個用來開發(fā)Mac OS X和iOS應(yīng)用程序的IDE(Integrated Development Environment,集成開發(fā)環(huán)境)。Xcode具有統(tǒng)一的用戶界面設(shè)計,編碼、測試、調(diào)試都可以在一個簡單的窗口內(nèi)完成。此外,Xcode創(chuàng)造性的提供了使用多個編輯器來編碼和設(shè)計界面的模式(例如,源代碼編輯器,Storyboard界面編輯器)。眾所周知,在App開發(fā)中美觀的界面設(shè)計是其中最重要的部分之一,也是吸引用戶眼球的關(guān)鍵。Xcode中提供了一個
34、叫做Storyboard的可視化圖形編輯界面,其底層依賴于一個XML格式的配置文件,開發(fā)者一般很少直接編輯該配置文件,絕大部分操作是通過界面完成的,例如控制組件大小、組件對齊方式以及屏幕適配等等。與此同時,利用助手編輯器,開發(fā)者還可以通過拖拽的方式自動生成組件屬性、事件方法等代碼。Xcode的主要優(yōu)勢:Xcode可以輔助開發(fā)者渲染應(yīng)用程序;Xcode可以為各種類型的軟件項目提供編輯、瀏覽、構(gòu)建以及調(diào)試;目前Xcode的最新版本是6.4。1.4.3 Objective-C語言O(shè)bjective-C是C語言的超集,同時也是一種面向?qū)ο蟮木幊陶Z言7。它在標準的ANSI C上進行了擴展,集百家之長,采
35、用消息傳遞機制實現(xiàn)語言的動態(tài)性。目前,它是蘋果產(chǎn)品的主要編程語言。Objective-C作為面向?qū)ο蟮恼Z言,其出現(xiàn)時間比C+還要早。隨著Mac OS X系統(tǒng)和iOS平臺的不斷發(fā)展,越來越多的移動開發(fā)者開始學(xué)習這門語言,因而其市場份額不斷增大,排名也一度超越C+和C#等主流語言。Objective-C特有的繼承、復(fù)合、內(nèi)存管理、ARC自動引用計數(shù)、對象初始化、協(xié)議、委托、鍵/值編碼等特性為開發(fā)者的開發(fā)提供了極大的便利。下面將簡單介紹下Objective-C編程中及iOS開發(fā)中經(jīng)常會遇到的兩個概念:委托(Delegate)在Objective-C中經(jīng)常會使用一種名為委托的技術(shù),委托其實是一種對象,
36、由另一個類請求執(zhí)行某些工作。協(xié)議(Protocol)協(xié)議類似于Java中的接口。實現(xiàn)協(xié)議的每一個方法似乎都需要完成大量的工作。但是,通常情況下,一個協(xié)議只有少數(shù)幾個需要實現(xiàn)的方法,只有實現(xiàn)了這些方法才能獲得一系列有用的功能。Swift是蘋果于2014年WWDC(World Wide Developers Conference,蘋果全球開發(fā)者大會)發(fā)布的新型開發(fā)語言,它將Objective-C語言進行封裝提供了更加強大的功能。本系統(tǒng)之所以沒有選擇Swift作為開發(fā)語言,主要是因為百度地圖沒有提供可由Swift調(diào)用的相關(guān)API接口,所以采用了更為成熟的Objective-C語言。1.4.4 百度地
37、圖SDK百度地圖iOS SDK是一套基于iOS 5.0及以上版本設(shè)備的應(yīng)用程序接口,提供了諸如地圖展示、POI檢索、路徑規(guī)劃、地圖標注、離線地圖等豐富的LBS能力。開發(fā)者可以使用百度地圖iOS SDK開發(fā)適用于移動設(shè)備的地圖應(yīng)用程序,通過該SDK接口,開發(fā)者可以便捷的訪問百度地圖數(shù)據(jù)和獲取服務(wù)8-9。目前市面上很多功能強大、交互性強的應(yīng)用程序都是在此基礎(chǔ)之上建立起來的。該套SDK提供的API調(diào)用是免費的,任何非營利性行為均可免費使用(若需要進行商業(yè)化運作則需要同百度公司簽訂協(xié)議),不過開發(fā)者需要先通過百度賬號申請地圖密鑰(Key)才能或得使用該SDK接口的權(quán)利。本系統(tǒng)主要利用了百度地圖提供的定
38、位、反Geo編碼以及POI檢索的功能,完成對用戶輸入關(guān)鍵字的檢索。然后再利用標簽算法在拓撲圖上將關(guān)鍵字權(quán)重傳播,從而得到興趣點附近關(guān)鍵字密度,以便發(fā)現(xiàn)關(guān)鍵字密集區(qū)域,實現(xiàn)地圖區(qū)域化搜索。1.4.5 Eigen矩陣運算庫Eigen是一個開源的C+矩陣運算庫。Eigen的最大優(yōu)勢是使用方便,且可跨平臺使用。它本身僅由許多頭文件組成,使用時要做的就是把需要用到的頭文件和代碼放在一起就可以了。此外,Eigen還對部分功能支持多線程,而且稀疏矩陣支持良好。第2章 系統(tǒng)分析系統(tǒng)分析主要包括需求分析、技術(shù)可行性分析、設(shè)備可行性分析以及設(shè)計流程分析。通過詳細的系統(tǒng)分析,一方面可以對系統(tǒng)進行更深入的了解,另一方
39、面還可以大概估算出開發(fā)周期、項目預(yù)算等指標,為系統(tǒng)的開發(fā)奠定了基礎(chǔ)。2.1 需求分析眾所周知,基于位置的服務(wù)是地理信息服務(wù)系統(tǒng)中最為重要的應(yīng)用之一,它影響著人們的日常生活以及社會發(fā)展的各個方面。隨著智能手機(Smart Phone)和平板電腦(Tablet)的迅速普及,許多基于位置的服務(wù)模式也得到了迅速發(fā)展,尤其是在移動地圖搜索應(yīng)用領(lǐng)域,基于位置的個性化推薦迅速流行。現(xiàn)有地圖搜索服務(wù)(如Google、百度、高德等)一般都是通過比較興趣點與搜索關(guān)鍵字的相關(guān)性強弱進行單一地點推薦,然而像這樣單一地點推薦的服務(wù)模式已經(jīng)不能滿足用戶的個性化需求。很多時候用戶并沒有一個十分明確的搜索目標或者沒法用一個很
40、準確的詞來概括形容搜索目標,這時基于關(guān)鍵字相關(guān)性的單一推薦就沒法滿足用戶的需求。例如:當用戶在搜索“美食”這個關(guān)鍵字時,有時候用戶并沒有十分明確的目標“要吃什么”,而是想要得到一些推薦結(jié)果。因此我們可以為用戶推薦一些關(guān)鍵字密集區(qū)域,方便用戶進行“比較”和“選擇”,然后確定自己的目標。這種多樣性的地圖搜索服務(wù)模式并不涉及單一興趣點的排序問題,因此也不會涉及到人為操控推薦順序的情況。基于LBS的地圖區(qū)域化搜索相較于傳統(tǒng)的地圖搜索應(yīng)用模式更能滿足用戶的個性化需求。隨著時間的推移,潮流的發(fā)展,越來越多的用戶開始關(guān)注個性化需求、人性化因素等等,來獲取更好的服務(wù)推薦。因此,為用戶提供個性化地圖搜索服務(wù)是滿
41、足用戶需求的,具有創(chuàng)新性的方向。2.2 技術(shù)可行性分析本系統(tǒng)主要涉及到Objective-C面向?qū)ο缶幊陶Z言、Xcode集成開發(fā)環(huán)境、百度地圖SDK、Eigen矩陣運算庫等。Objective-C語言O(shè)bjective-C是一種面向?qū)ο蟮木幊陶Z言。Objective-C語言是在C的基礎(chǔ)上,加入面向?qū)ο筇匦詳U從而成的編程語言。目前Objective-C主要應(yīng)用于Mac OS X系統(tǒng)和iOS平臺這兩個NeXTSTEP的衍生系統(tǒng)。Xcode集成開發(fā)環(huán)境Xcode提供了基本的開發(fā)環(huán)境,包括源代碼編寫、調(diào)試、運行、測試,此外還提供了各種類型的iPhone模擬器供開發(fā)者模擬運行程序。百度地圖SDK百度地圖
42、iOS SDK提供了地圖展示、POI檢索、地圖標注、定位等豐富的LBS功能。開發(fā)者可以通過API接口訪問百度數(shù)據(jù),構(gòu)建功能豐富、交互性強、具有實用性的地圖應(yīng)用程序。Eigen矩陣運算庫Eigen是一個開源的C+矩陣運算庫,且可跨平臺使用。Eigen包含了絕大部分主流的矩陣處理算法,同時提供很多第三方的接口。所以軟件的實施在技術(shù)上是可行的。2.3 環(huán)境可行性分析2.3.1 軟件環(huán)境軟件運行環(huán)境:iOS 8.2及以上編譯平臺:Mac OS X 10.10.3 64bits操作系統(tǒng)編譯工具:Xcode 6.3以及iOS SDK 硬件環(huán)境軟件測試機型:iPhone6,iPhone5s,iPad Min
43、i編譯環(huán)境:MacBook Air,CPU Intel Corei5,RAM 4GB2.4 設(shè)計分析對于這一基于LBS地圖搜索服務(wù)系統(tǒng)的構(gòu)建,從軟件工程的角度對系統(tǒng)的構(gòu)建進行了更加詳細的設(shè)計分析,其中包括業(yè)務(wù)流程的分析、數(shù)據(jù)流的分析以及數(shù)據(jù)字典描述等等;業(yè)務(wù)流程分析業(yè)務(wù)流程分析是軟件開發(fā)過程中必不可少的環(huán)節(jié)之一。通過業(yè)務(wù)流程分析,開發(fā)者可以更好的掌握業(yè)務(wù)的處理流程。通過對地圖搜索服務(wù)系統(tǒng)進行需求分析,整個系統(tǒng)各個模塊的業(yè)務(wù)流程圖如圖2.1所示:圖2. SEQ 圖2. * ARABIC 1 業(yè)務(wù)流程圖數(shù)據(jù)流分析用戶進入系統(tǒng)后,可以使用的功能模塊有定位模塊、搜索模塊、興趣點顯示模塊以及區(qū)域化顯示模
44、塊等等;當用戶點擊搜索按鈕或者導(dǎo)航欄按鈕后,客戶端獲取到搜索關(guān)鍵字并向服務(wù)器發(fā)出搜索請求,服務(wù)器接受客戶端請求后向客戶端返回搜索結(jié)果相關(guān)信息,然后客戶端利用標簽傳遞算法尋找密集子圖實現(xiàn)地圖區(qū)域化搜索。系統(tǒng)的數(shù)據(jù)流分析如圖2.2所示:圖2. SEQ 圖2. * ARABIC 2 數(shù)據(jù)流分析圖數(shù)據(jù)字典本軟件開發(fā)過程中用到了百度地圖提供的自定義數(shù)據(jù)類BMKPoiResult(POI搜索結(jié)果類)、BMKPoiInfo(POI信息類),這些封裝好的自定義數(shù)據(jù)類給開發(fā)者的開發(fā)帶來了極大的便捷??蛻舳酥恍枰c服務(wù)器進行一次交互,就可以獲得封裝在數(shù)據(jù)類中各種類型的數(shù)據(jù)。通過這種方式,減少了與服務(wù)器的交互次數(shù),
45、縮短了系統(tǒng)的響應(yīng)時間。下面列出LBS地圖搜索服務(wù)系統(tǒng)中的數(shù)據(jù)字典條目:POI搜索結(jié)果類如表2.1所示:表2. SEQ 表2. * ARABIC 1 POI搜索結(jié)果類字段名字段類型字段描述_totalPoiNumint本次POI搜索的總結(jié)果數(shù)_currPoiNumint當前頁的POI結(jié)果數(shù)_pageNumint本次POI搜索的總頁數(shù)_pageIndexint當前頁的索引_poiInfoListNSArray *POI列表,含POI信息類_cityListNSArray *城市列表POI信息類如表2.2所示:表2. SEQ 表2. * ARABIC 2 POI信息類表格字段名字段類型字段描述_na
46、meNSString *POI名稱_uidNSString *用戶ID_addressNSString *POI地址_cityNSString *POI所在城市_tagNSString *POI標簽_detailUrlNSString *POI詳情頁Url_phoneNSString *POI電話號碼_postcodeNSString *POI郵編_epoitypeintPOI類型_ptCLLocationCoordinate2DPOI坐標_overallRatingDoublePOI綜合評分2.5 系統(tǒng)流程圖本軟件的系統(tǒng)流程圖如圖2.3所示:圖2. SEQ 圖2. * ARABIC 3 系統(tǒng)
47、流程圖本軟件需要聯(lián)接網(wǎng)絡(luò)使用,打開軟件后,首先出現(xiàn)加載界面,然后是主界面,在主界面會獲取用戶的當前位置,連接百度地圖服務(wù)器并上傳用戶的位置信息,然后進行反Geo(Geographic,地理)編碼獲取用戶當前詳細地址信息。用戶點擊搜索框時,頁面跳轉(zhuǎn)到搜索導(dǎo)航界面,該界面列出了若干常用搜索關(guān)鍵字導(dǎo)航欄以及搜索歷史記錄,點擊這些導(dǎo)航按鈕或者歷史搜索記錄就會觸發(fā)搜索行為并跳轉(zhuǎn)至區(qū)域化顯示界面。區(qū)域化顯示界面有一個段控制器,可以在區(qū)域化顯示界面和興趣點顯示界面切換。區(qū)域化顯示界面還提供一個搜索按鈕以便用戶在不同視圖范圍內(nèi)進行二次搜索;興趣點顯示界面的主要功能是在地圖可視范圍內(nèi)顯示標注在地圖上的興趣點,并
48、可以伴隨地圖顯示范圍的變化而快速的加載地圖上的興趣點。第3章 系統(tǒng)概要設(shè)計系統(tǒng)設(shè)計主要包括兩個方面,首先是總體結(jié)構(gòu)的設(shè)計(例如,采用C/S還是B/S架構(gòu)),其次是具體物理模型的設(shè)計(例如,具體采用什么平臺、數(shù)據(jù)庫等)。進行系統(tǒng)設(shè)計的主要目的之一就是為下一階段系統(tǒng)的實施如編程、調(diào)試等制定計劃。3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計系統(tǒng)實現(xiàn)了基于LBS地圖搜索服務(wù)的客戶端,而服務(wù)器端主要是利用百度地圖服務(wù)器提供相關(guān)數(shù)據(jù)。用戶通過iPhone手機上的客戶端進入系統(tǒng),首先出現(xiàn)加載界面,然后是主界面,在主界面加載時系統(tǒng)會通過GPS(Global Positioning System,全球定位系統(tǒng))、Wi-Fi、移動網(wǎng)
49、絡(luò)等合理方式獲取用戶的當前位置信息,并將相關(guān)信息標注在地圖上。用戶點擊搜索框時,頁面跳轉(zhuǎn)到搜索導(dǎo)航界面,該界面列出了若干常用搜索關(guān)鍵字導(dǎo)航欄以及歷史搜索記錄,點擊這些導(dǎo)航按鈕或者歷史搜索記錄或者在搜索框內(nèi)輸入搜索關(guān)鍵字就會觸發(fā)搜索行為并跳轉(zhuǎn)至區(qū)域化顯示界面。區(qū)域化顯示界面有一個段控制器,可以在區(qū)域化顯示界面和興趣點顯示界面來回切換。此外,區(qū)域化顯示界面還提供一個額外搜索按鈕以便用戶在不同可視范圍內(nèi)進行二次搜索;興趣點顯示界面的主要功能是在地圖可視范圍內(nèi)顯示標注在地圖上的興趣點,并可以伴隨地圖顯示范圍的變化而快速加載地圖上的興趣點,這是通過數(shù)據(jù)結(jié)構(gòu)四叉樹來實現(xiàn)快速查找的;軟件系統(tǒng)總體模塊文件架構(gòu)
50、圖如圖3.1所示:圖3. SEQ 圖3. * ARABIC 1 文件模塊圖定位模塊當用戶進入含有定位模塊的界面時,系統(tǒng)會調(diào)用定位模塊功能進行定位;而且定位模塊會根據(jù)用戶所處的聯(lián)網(wǎng)狀態(tài)自動選擇GPS、Wi-Fi、移動網(wǎng)絡(luò)中任一種合適的方式進行定位。定位模塊文件架構(gòu)圖如圖3.2所示:圖3. SEQ 圖3. * ARABIC 2 定位模塊文件圖搜索模塊搜索模塊是本系統(tǒng)的核心功能;在搜索模塊中,用戶可以通過不同的方式向百度地圖服務(wù)器發(fā)出搜索請求,如通過導(dǎo)航欄上的快捷按鈕、歷史搜索記錄、搜索框的文本輸入等。在獲得百度地圖服務(wù)器端返回的數(shù)據(jù)后,通過客戶端標簽傳遞算法的處理找出密集子圖實現(xiàn)地圖的區(qū)域化搜索;
51、以此同時,還利用了數(shù)據(jù)結(jié)構(gòu)四叉樹實現(xiàn)快速查找地圖可視區(qū)域內(nèi)標注的興趣點。模塊搜索文件架構(gòu)圖如圖3.3所示:圖3. SEQ 圖3. * ARABIC 3 搜索模塊文件圖表3.1和表3.2列出了本系統(tǒng)相關(guān)自定義類,其中表格中列出了本程序的主要自定義類名,以及概要的描述了各個類所實現(xiàn)的主要功能。表3. SEQ 表3 * ARABIC 1 視圖控制器類表格Number頁面名稱設(shè)計類名頁面概要1主界面ViewController.mm定位、反Geo編碼2搜索導(dǎo)航界面TableViewController.mm觸發(fā)搜索行為3區(qū)域化顯示界面MapRegionViewController.mm區(qū)域化顯示密集子
52、圖4興趣點顯示界面PoiListViewController.mm興趣點標注動態(tài)顯示表3. SEQ 表3 * ARABIC 2 模型類表格Number父類設(shè)計類名功能1UIViewControllerFHSegmentedViewController.mm段控制器實現(xiàn)2NULLTBQuadTree.mm四叉樹實現(xiàn)3NSObjectTBCoordinateQuadTree.mm四叉樹查找興趣點4BMKAnnotationViewTBClusterAnnotationView.mm標注興趣點匯集5NSObjectTBClusterAnnotation.mm自定義標注圖案6NSObjectMBPro
53、gressHUD.h自定義提示框7NULLMapUtils.mm標簽傳遞算法實現(xiàn)8NULLGlobalVars.mm全局變量3.2 數(shù)據(jù)類設(shè)計雖然在系統(tǒng)的開發(fā)中我們并沒有自定義數(shù)據(jù)類別,但是我們采用了百度地圖為開發(fā)者提供的自定義數(shù)據(jù)類別(BMKPoiResult、BMKPoiInfo)。這些封裝好的自定義數(shù)據(jù)類給開發(fā)者的開發(fā)帶來了極大的便捷。只需要與服務(wù)器交互一次,就可以獲得封裝在類中各種類型的數(shù)據(jù)。通過這種方式,減少了與服務(wù)器的交互次數(shù),縮短了系統(tǒng)的響應(yīng)時間。此外,這些封裝好的數(shù)據(jù)類還提供了各種操作數(shù)據(jù)的函數(shù),提高了開發(fā)者的開發(fā)效率。下面圖3.4和圖3.5是在開發(fā)過程中使用到的自定義類:圖3
54、. SEQ 圖3. * ARABIC 4 POI信息數(shù)據(jù)類圖3. SEQ 圖3. * ARABIC 5 POI搜索結(jié)果數(shù)據(jù)類3.3 系統(tǒng)的結(jié)構(gòu)設(shè)計C/S(Client/Server,客戶端/服務(wù)器)結(jié)構(gòu),是一種常用的軟件系統(tǒng)體系結(jié)構(gòu)。C/S體系結(jié)構(gòu)利用Client端(客戶端)和Server端(服務(wù)端)硬件環(huán)境的優(yōu)勢,由服務(wù)器端接收客戶端請求并利用分布式集群處理大量數(shù)據(jù),而客戶端主要負責向服務(wù)器端發(fā)送請求以及進行輕量級數(shù)據(jù)處理等操作。隨著互聯(lián)網(wǎng)的飛速發(fā)展,產(chǎn)品更新迭代的周期越來越短,傳統(tǒng)的C/S體系結(jié)構(gòu)存在著開發(fā)周期長、代價高和低效率等問題。此外,硬件投資的浪費、高昂的維護成本也是不容忽視的問題
55、。雖然如此,C/S結(jié)構(gòu)優(yōu)點也很明確:服務(wù)器利用分布式集群處理數(shù)據(jù)負荷較輕;數(shù)據(jù)的操作速度較快、便捷;數(shù)據(jù)的存儲管理透明;因此本畢業(yè)設(shè)計所開發(fā)的基于iPhone地圖區(qū)域化搜索采用的是C/S架構(gòu)。第4章 系統(tǒng)詳細設(shè)計與實現(xiàn)OO方法(Object Oriented,面向?qū)ο蠓椒ǎ┯谏鲜兰o80年代提出,如今已經(jīng)成為計算機業(yè)界中最流行的設(shè)計方法,包括OOA(Object Oriented Analysis,面向?qū)ο蠓治觯?、OOD(Object Oriented Design,面向?qū)ο笤O(shè)計)、OOP(Object Oriented Programming,面向?qū)ο缶幊蹋?。面向?qū)ο蠓椒ㄊ前殡S著面向?qū)ο缶幊陶Z
56、言的發(fā)展而產(chǎn)生的,采用面向?qū)ο笳Z言編寫程序(例如,C+、Java、Python等面向?qū)ο缶幊陶Z言),更接近于模擬現(xiàn)實世界中的操作流程,這是一種符合人類思維習慣的編程模式。因此,運用面向?qū)ο蠓椒ň帉懙膽?yīng)用程序相比面向過程方法具有更高的可讀性、可擴充性。本系統(tǒng)采用的是基于面向?qū)ο笳Z言的MVC設(shè)計模式。MVC是一種經(jīng)典的軟件設(shè)計模式,通過采用模型、視圖、控制器三組分離的方式組織代碼內(nèi)容,其中控制器用來控制視圖的邏輯操作、數(shù)據(jù)更新等等,而模型主要是為視圖提供數(shù)據(jù)。采用這一框架模式的優(yōu)點是重用性高、易維護等;此外,在進行系統(tǒng)構(gòu)建之前還需要進行一系列的開發(fā)配置。首先,需要在Xcode工程中引入CoreLo
57、cation.framework、QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework和BaiduMapAPI.framework等系統(tǒng)庫和百度地圖庫。然后,進行環(huán)境配置使其兼容C+代碼,最后引入資源文件,即引入mapapi.bundle資源文件,如果使用了基礎(chǔ)地圖功能,需要添加該資源,否則地圖不能正常顯示。其中mapapi.bundle中存儲了定位、默認大頭針標注View及路線關(guān)鍵點的資源圖片,還存儲了矢量地圖繪制必需的資源
58、文件。至此,開發(fā)的配置工作告一段落,只需要在使用SDK的類中引入頭文件即可使用百度地圖。4.1 iOS開發(fā)過程中常用到的控件iOS系統(tǒng)提供了大量優(yōu)美、簡潔、功能強大的控件,開發(fā)者可以利用這些控件構(gòu)造出精美的App。此外,開發(fā)者還可以自定義控件以滿足個性化需求,而且蘋果公司也鼓勵開發(fā)者進行創(chuàng)新,用來滿足產(chǎn)品日益增長的功能需求。下面將介紹本系統(tǒng)中使用的三個主要控件UISearchBar、UITableView、UISegmentedControl,同時這三個控件也是iOS開發(fā)中最常用的控件。UISearchBar它是iOS系統(tǒng)中一個集成的搜索控件,由文本輸入框、查找按鈕、書簽按鈕和取消按鈕構(gòu)成。當
59、用戶點擊搜索輸入框時,系統(tǒng)自動彈出輸入鍵盤;當用戶點擊鍵盤上的Search按鈕時,會自動觸發(fā)搜索動作;這樣高度集成的控件大大縮短了軟件的開發(fā)周期,為開發(fā)者帶來了便利。UITableView它是一個表格控件,它包含多行單元格可供用戶進行滑動、點擊、添加等等操作。其主要作用表現(xiàn)為,為了把目錄項以索引列表的形式展示;用于展示相關(guān)詳細信息;為了展示選項的可選列表等等;UISegmentedControl它是一個段選擇控制器控件,每個段之間的功能是相互獨立的,用戶可以很方便的來回進行切換。4.2 視圖生命周期在手機應(yīng)用中,展現(xiàn)給用戶的頁面稱為視圖。因此,視圖是一個應(yīng)用的“門面”,也是開發(fā)過程中極其重要組
60、成的部分之一。程序功能的實現(xiàn)與視圖的生命周期息息相關(guān),函數(shù)模塊的執(zhí)行都是伴隨著系統(tǒng)調(diào)用生命周期函數(shù)而同步執(zhí)行的。視圖生命周期與視圖控制器關(guān)系如圖4.1所示:圖4. SEQ 圖4. * ARABIC 1 視圖生命周期在iOS系統(tǒng)中視圖主要有5種基礎(chǔ)狀態(tài)viewWillLoad:、viewWillAppear:、viewDidAppear:、viewWillDisappear:和viewDidDisappear:。伴隨著用戶的操作視圖會處于不同的生命周期狀態(tài),此時系統(tǒng)會通過視圖控制器調(diào)用不同的生命周期函數(shù)。viewWillLoad:方法該方法主要為視圖的出現(xiàn)做準備,也就是進行視圖的初始化工作。vi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆江蘇省海安市南莫中學(xué)高三生物第一學(xué)期期末達標測試試題含解析
- 2025屆甘肅省臨夏市生物高三上期末調(diào)研模擬試題含解析
- 2025屆云南省石林彝族自治縣民族中學(xué)語文高三上期末預(yù)測試題含解析
- 2025屆湖北省棗陽市白水高中生物高二上期末經(jīng)典試題含解析
- 2025屆陜西省渭南市韓城市數(shù)學(xué)高三第一學(xué)期期末質(zhì)量檢測模擬試題含解析
- 借款合同簡約版范本
- 無抵押借款合同協(xié)議書
- 高效家居采購合同
- 2025屆江西省宜春市宜豐縣二中英語高三第一學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 詳細解讀原材料采購合同
- 愛國主義教育模板下載
- 網(wǎng)絡(luò)與電商安全管理制度
- 2024遼寧省檢察系統(tǒng)書記員招聘筆試參考題庫含答案解析
- 公共事務(wù)中的風險管理策略
- 《勞動法》 教學(xué)大綱
- 礦卡司機安全教育考試卷(帶答案)
- 中國民族鋼琴藝術(shù)鑒賞智慧樹知到期末考試答案章節(jié)答案2024年西安交通大學(xué)
- 2024年職業(yè)院校技能大賽(新能源汽車維修賽項)考試題庫400題(省決賽用)
- 醫(yī)院納入定點后使用醫(yī)療保障基金的預(yù)測性分析報告
- 《太陽系》75289省公開課一等獎全國示范課微課金獎?wù)n件
- 《研學(xué)旅行課程設(shè)計》課件-體驗式學(xué)習課程單元設(shè)計
評論
0/150
提交評論