基于ios的派卡系統(tǒng)設(shè)計與應(yīng)用說明書_第1頁
已閱讀1頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p><b>  關(guān)鍵詞I</b></p><p>  AbstractI</p><p>  Key wordsII</p><p>&l

2、t;b>  1前言1</b></p><p>  1.1研究背景及意義1</p><p>  1.2移動辦公國內(nèi)外發(fā)展現(xiàn)狀1</p><p>  2開發(fā)環(huán)境及相關(guān)技術(shù)2</p><p>  2.1 iOS系統(tǒng)與Objective-C簡介2</p><p><b>  2.2開發(fā)環(huán)境

3、3</b></p><p>  2.2.1 Xcode IDE3</p><p>  2.2.2 iPhone模擬器4</p><p>  2.2.3 Instruments5</p><p>  2.3 運行環(huán)境5</p><p>  2.3.1 iPhone的硬件規(guī)格5</p>

4、<p>  2.3.2 iPhone在線辦公上的優(yōu)勢5</p><p>  2.3.3 iPhone的不足6</p><p>  2.4 技術(shù)簡介6</p><p>  2.4.1 MVC模式6</p><p>  2.4.2 iOS內(nèi)存管理7</p><p>  2.4.3單例、委托、通知、bl

5、ock7</p><p>  3 軟件體系架構(gòu)與設(shè)計8</p><p>  3.1軟件整體架構(gòu)設(shè)計9</p><p>  3.2功能性需求分析與設(shè)計10</p><p>  3.2.1網(wǎng)絡(luò)通信模塊10</p><p>  3.2.2登錄模塊10</p><p>  3.2.3首頁模塊

6、10</p><p>  3.2.4車牌錄入模塊11</p><p>  3.2.5派卡記錄查詢模塊11</p><p>  3.2.6套餐報價查詢模塊12</p><p>  3.2.7設(shè)置模塊12</p><p>  4 項目功能實現(xiàn)13</p><p>  4.1啟動界面動畫實

7、現(xiàn)13</p><p>  4.2網(wǎng)絡(luò)與數(shù)據(jù)13</p><p>  4.2.1網(wǎng)絡(luò)通信模塊實現(xiàn)13</p><p>  4.2.2 JSON數(shù)據(jù)解析實現(xiàn)14</p><p>  4.3登錄模塊14</p><p>  4.3.1用戶登錄子模塊實現(xiàn)14</p><p>  4.4登陸

8、模塊實現(xiàn)15</p><p>  4.4.1登陸實現(xiàn)15</p><p>  4.4.2備案功能實現(xiàn)17</p><p>  4.5智能拍照識別功能實現(xiàn)17</p><p>  4.6定位功能實現(xiàn)18</p><p>  4.7檢測更新功能實現(xiàn)19</p><p>  5項目性能測試

9、及運行情況20</p><p>  5.1項目性能測試20</p><p>  5.2項目運行情況21</p><p><b>  總結(jié)22</b></p><p><b>  參考文獻23</b></p><p><b>  致謝24</b>

10、;</p><p>  基于iOS的派卡系統(tǒng)設(shè)計與應(yīng)用</p><p><b>  摘 要</b></p><p>  網(wǎng)絡(luò)技術(shù)與移動技術(shù)推動了移動互聯(lián)網(wǎng)的迅速發(fā)展,導(dǎo)致新一代移動端設(shè)備的迅速發(fā)展,在這種背景下移動辦公應(yīng)運而生,從而漸漸改變了人們的辦公方式,也改變著傳統(tǒng)的工作模式。移動辦公為自主辦公提供了便捷,使它成為當(dāng)前新工作模式的主流。&

11、lt;/p><p>  本文在分析國內(nèi)外相關(guān)研發(fā)狀況的基礎(chǔ)上,設(shè)計了一款基于iOS平臺的APP辦公應(yīng)用,之后也逐步實現(xiàn)了這一設(shè)計。該應(yīng)用根據(jù)移動辦公過程中的特點,從用戶需求分析開始,通過移動辦公系統(tǒng)課題的研究和開發(fā),實現(xiàn)了車牌信息查詢錄入、查詢派卡記錄統(tǒng)計、套餐實時報價查詢等功能。系統(tǒng)中用到的理論知識和相關(guān)技術(shù)進行了詳細(xì)介紹,并介紹了設(shè)計和用戶體驗上的具體優(yōu)化,給出了APP的性能測試。</p><

12、p><b>  關(guān)鍵詞</b></p><p>  移動技術(shù);iPhone;iOS ;APP </p><p>  Paika System Design and Application Based on iOS</p><p><b>  Abstract</b></p><p>  Net

13、work technology and Mobile technology promoted the rapid development of mobile Internet,led to the rapid development of a new generation of mobile terminal equipment. Under this background, Mobile office arises, it gradu

14、ally changed the way of people's work, and changed the traditional working mode.The Mobile office provides a convenience for independent office, make it become the mainstream of the current new work mode. </p>

15、<p>  In this paper, on the base of analyzing the situation which is related to research and development in domestic and overseas, I designed an APP office application that is based on the IOS, and also realize the

16、 design gradually. This application is according to the characteristics in the process of mobile office, starting from the analysis of user’s demand. It realized the query and input of license plate information, the stat

17、istics of querying sent card’s record, the query of package which can of</p><p><b>  Key words</b></p><p>  Mobile technology;iPhone;iOS;APP</p><p><b>  1前言</b&

18、gt;</p><p>  1.1研究背景及意義</p><p>  隨著移動網(wǎng)絡(luò)時代的來臨,手機、平板電腦、上網(wǎng)本等移動終端迅速發(fā)展,市場不斷擴大,用戶群也在不斷擴大。又移動網(wǎng)絡(luò)寬帶飛躍式的增長,3G、4G、WiFi網(wǎng)絡(luò)的普及,為移動設(shè)備的發(fā)展注入了新的動力。</p><p>  當(dāng)人們在傳統(tǒng)的辦公形式中,通過紙質(zhì)、電腦等途徑辦公的時候。辦公效率的問題,一直困擾著

19、人們。就在這時候,在線辦公已經(jīng)悄悄的走到身邊。移動在線辦公輕松的解決了傳統(tǒng)模式的辦公難題,員工不管在哪都能夠享受到實時辦公。信息實時的優(yōu)勢、以及更多的選擇和便利性,是目前的移動在線辦公正顛覆傳統(tǒng)辦公方式的三大有利因素。十年前你想聽實時辦公可能是白日夢,那互聯(lián)網(wǎng)發(fā)展的今天,這些都成為了可能。很多歐美國家已普遍接受在線辦公的模式,這種依托在線辦公系統(tǒng)完成工作的活動,擺脫了空間和時間限制的優(yōu)勢是當(dāng)前辦公技術(shù)領(lǐng)域的研究熱點。</p>

20、<p>  目前人們大多還是在臺式不可移動設(shè)備上辦公,就在近幾年移動設(shè)備的優(yōu)勢越來越明顯,接近與臺式機的性能同時又兼具移動便攜性,人們開始依賴這些設(shè)備生活。2007年美國蘋果公司的iPhone發(fā)布后,給移動教育解決了這一大難題。紛紛有美國、新加坡、法國、英國等多個國家開始將iPhone引用進辦公系統(tǒng)中,并引起了員工強大的興趣。通過這種辦公方式節(jié)省了成本,提高了效率,減少了紙質(zhì)文檔的印刷,為環(huán)保做了貢獻,也讓人們對iPhon

21、e有了新的認(rèn)識。本課題的研究是在以C/S模式設(shè)計和開發(fā)基于iPhone的移動辦公系統(tǒng),目的在于改造現(xiàn)有的辦公模式,同時在可移動使用的iPhone設(shè)備上通過流媒體(在線視頻)技術(shù)來呈現(xiàn)生動形象的辦公內(nèi)容,自由自主的辦公環(huán)境,提高員工的辦公效率,激發(fā)出員工對工作的熱情,其關(guān)鍵是iPhone客戶端應(yīng)用軟件開發(fā)。</p><p>  1.2移動辦公國內(nèi)外發(fā)展現(xiàn)狀</p><p>  業(yè)界早有共識:

22、1990到2000年是PC的十年;2000到2010年是互聯(lián)網(wǎng)的十年;2010年之后的十年將是移動互聯(lián)網(wǎng)的十年!如今,聯(lián)想柳傳志聲稱要用社交網(wǎng)絡(luò)做業(yè)務(wù),萬科王石和京東劉強東在美國用iPad、手機遙控自家企業(yè),此時,作為企業(yè)管理者,還站在移動互聯(lián)的門外,顯然是落伍的。 當(dāng)下,對于企業(yè)而言,移動互聯(lián)網(wǎng)最初的顛覆就是高效的信息流轉(zhuǎn),以求與物流、資金流形成合力,目前,全球已有24%的機構(gòu)完全接受了移動辦公方式。預(yù)計2014年這一比例將達到83

23、%。但是,在中國,老板們還有心病難除。最近的研究表明,員工喜歡移動辦公,老板卻未必買賬。老板的心結(jié)是顯而易見的:一則懷疑員工到底有沒有在“上班”,二則唯恐企業(yè)有緊急工作時找不到人。這些心病恰恰反映了保守派企業(yè)的短處:管理思想墨守成規(guī),管理方法不具有包容性和應(yīng)變能力。數(shù)家高薪民營企業(yè)的實踐表明,對從事許多項目的員工實行移動辦公,不僅可以降低辦公成本,還能大幅提升辦公效率,更沒有“找不到人”的時候。事實上,移動辦公反而是考察員工責(zé)任心和效率

24、的試金石,就像Cisco 的調(diào)查顯示,其3/5 的員工說他們的工作效率與是否在辦公室無關(guān),超過38%的人認(rèn)</p><p>  2開發(fā)環(huán)境及相關(guān)技術(shù)</p><p>  2.1 iOS系統(tǒng)與Objective-C簡介</p><p>  iOS是由蘋果公司開發(fā)的移動操作系。蘋果公司在2007年公布了這個操作系統(tǒng),現(xiàn)在iPhone、iPhone、iPod touch等

25、設(shè)備上均使用改移動操作系統(tǒng)。它屬于類Unix內(nèi)核的商業(yè)操作系統(tǒng),具有較強得內(nèi)存管理能力,能同時運行多款軟件。</p><p>  iOS 操作系統(tǒng)支持多點觸控,可與系統(tǒng)進行基本手勢交互,包括滑動(swiping)、輕按(tapping)、擠壓(pinehing)及旋轉(zhuǎn)(fntating)。iOS 層次架構(gòu)如圖2.1所示,iOS 大體上可以分為以下四個層次。</p><p>  圖2.1

26、iOS分層架構(gòu)圖</p><p>  、Core OS 核心層:包含Accelerate Framework、External Accessory Framework、Security Framework、System等幾個框架,為其他方法類的使用提供基礎(chǔ)功能,比如:硬件驅(qū)動、內(nèi)存管理、線程管理、文件系統(tǒng)、網(wǎng)絡(luò)以及標(biāo)準(zhǔn)輸入輸出等。</p><p>  、Core Services核心服務(wù)層

27、:包含Address Book Framework、CFNetwork Framework、Core Data Framework、Core Foundation Framework、Core Location Framework、Core Media Framework、Core Telephony Framework、Event Kit Framework、Foundation Framework、Mobile Core Servi

28、ces Framework、Quick Look Framework、Store Kit Framework、System Configuration Framework、Block Objects、Grand Central Dispatch  、In App Purchase、Location Services、SQLite、XML Support等一些框架,為系統(tǒng)中的其他應(yīng)用提供基本系統(tǒng)服務(wù),同時也提供了很多有

29、用的方法類,如:SQLite數(shù)據(jù)庫、iCloud存儲、定位、聯(lián)網(wǎng)以及一些安全服務(wù)等。</p><p>  、Mediah媒體層:包含Core Graphics、Core Animation、OpenGL ES、Core Text、Image I/O、Assets Library Framework、Media Player Framework、AV Foundation、OpenAL、Core Audio Fra

30、meworks、AV Foundation、Core Media等,提供了一些媒體技術(shù),包括圖形圖像技術(shù)、 視音頻技術(shù)、 核心動畫技術(shù)等</p><p>  、Cocoa Touch 觸摸層:包括Address Book UI Framework、Event Kit UI Framework、Game Kit Framework、iAd Framework、Map Kit Framework、Message UI

31、 Framework、UIKit Framework等等,它們是任何應(yīng)用程序的關(guān)鍵架構(gòu),所有應(yīng)用程序里面的各種組件都來自于此,此外還提供了多任務(wù)處理、多點觸控、圖片文字的輸出顯示、文件的存取以及加速計等功能。</p><p>  iOS項目開發(fā)時所使用的語言是Objeelive-C和Cocoa編程。Objective-C是—種擴充C的面向?qū)ο蟮木幊涕_發(fā)語言,極度簡化了C++語言,Cocoa是對Objeelive-

32、C的高級封裝,可以大量簡化開發(fā)者的工作量。Objective-C 語言有三個主要特點,首先是有消息傳遞模型,其次是動態(tài)能力,最后是內(nèi)存管理。</p><p>  Objective-C通過支持類定義,方法以及屬性的語法,還有其他可以提高類的動態(tài)擴展能力的結(jié)構(gòu)等,擴展提升了標(biāo)準(zhǔn)的 ANSIC語言?,F(xiàn)在Objective-C 主要應(yīng)用于Mac OS X和i0S這兩個NeXTSTEP的派生系統(tǒng),為了在iPhone上面開

33、發(fā) C/S 模式的應(yīng)用,就必須使用Objective-C語言編寫iOS應(yīng)用。</p><p><b>  2.2開發(fā)環(huán)境</b></p><p>  2.2.1 Xcode IDE</p><p>  目前iOS應(yīng)用開發(fā)唯一的開發(fā)工具就是Xcode,Xcode6.1是目前最新版本,它是蘋果公司向開發(fā)人員提供的集成開發(fā)環(huán)境,必須運行在Mac OS

34、系統(tǒng)下。它可用于管理工程、編寫代碼、構(gòu)建可執(zhí)行文件、進行源碼級調(diào)試、進行源代碼倉庫管理、進行性能調(diào)節(jié)、應(yīng)用發(fā)布工具等一系列開發(fā)工具,可以滿足應(yīng)用開發(fā)中的各種需要。Xcode支持了多種語言編寫的程序,包括C、C++、Java、Objective-C等,而且每種語言的編譯速度都很快。Xcode IDE是Xcode集成開發(fā)環(huán)境主要的組成部分,開發(fā)過程中的大部分工作都是使用Xcode IDE來完成。圖2.2是Xcode6.1的主界面。最新的Xc

35、ode IDE將功能融為一體,主要的功能有編譯器、Fix-it、Interface Builder、源代碼編輯器。</p><p>  a)編譯器。Xcode IDE集成了強大的Objective-C、C、Java、C++開源LLVM編譯器,使得可以生成iPhone、iPhone、iPod Touch等產(chǎn)品調(diào)試用的app。.</p><p>  b)Fix-it。在開發(fā)的過程中難免會因為疏

36、忽造成一些語法錯誤,這時Fix-it就有了它的用武之地,它能夠立即提醒開發(fā)者所犯的代碼錯誤,這對開發(fā)的效率有非常大的提高。</p><p>  c)Interface Builder。在開發(fā)過程中,開發(fā)者需要構(gòu)建很多所需的UI界面,Interface Builder能夠很快速的生成UI界面,并且能夠?qū)崿F(xiàn)代碼與界面的功能鏈接。</p><p>  圖2.2 Xcode6.1主界面</

37、p><p>  d)源代碼編輯器。在編寫iPhone應(yīng)用過程中,為了使每個方法每個變量一目了然,開發(fā)者不得不使用較長的名字來分辨它們。源代碼編輯器具有智能的代碼補全功能,它還有代碼折疊、語法高亮、消息起泡等很多實用功能。</p><p>  2.2.2 iPhone模擬器</p><p>  iPhone模擬器即iOS Simulator,在開發(fā)過程中我們需要查看代碼在

38、設(shè)備中的形態(tài),iOS Simulator的運行結(jié)果基本跟真機相似,它有完整的iOS設(shè)備的不同版本與不同機型,非常方便的讓我們可以在很多機型上面測試,解決了我們需要很多真機設(shè)備測試的需求,也是調(diào)試屏幕適配的重要工具。由于電腦缺少了部分硬件所以少數(shù)功能是iOS Simulator不能完成的,比如:定位、加速計、相機、打電話、3G網(wǎng)絡(luò)等功能,所以有一臺真機進行測試也是必不可少的。</p><p>  2.2.3 Ins

39、truments</p><p>  為了讓應(yīng)用盡可能完善,在開發(fā)的同時需要保證應(yīng)用是否存在閃退等一系列內(nèi)存泄漏問題,也要保證用戶體驗要好。這時Instruments起到了重要的作用,在iOS應(yīng)用程序運行在真機或者是模擬器上時,可以利用Instruments環(huán)境分析性能。Instruments會清晰的記錄應(yīng)用程序的行為,可以查看內(nèi)存分配等重要指標(biāo)。這些數(shù)據(jù)都可以很方便我們對程序的評估和修改,在很大程度上提升了程序

40、的健壯性。</p><p><b>  2.3 運行環(huán)境</b></p><p>  2.3.1 iPhone的硬件規(guī)格</p><p>  由蘋果公司官方在線商店(http://store.apple.com/cn)得到iPhone不同型號的硬件規(guī)格,表2.1所示:</p><p>  表2.1 iPhone硬件規(guī)格&

41、lt;/p><p>  2.3.2 iPhone在線辦公上的優(yōu)勢</p><p>  iPhone的優(yōu)勢之一就是便攜,在地鐵、在公交、在路上,隨時隨地非常方便。iPhone的尺寸相對于電腦來說很小,也很輕,但是iPhone的內(nèi)容遠遠大于一個圖書館,對于工作者而言能夠大大的減輕負(fù)擔(dān)。iPhone兼具經(jīng)濟性與環(huán)保性,如果公司將iPhone應(yīng)用于辦公中,將傳統(tǒng)的紙質(zhì)辦公、電腦辦公裝進iPhone,不

42、僅減輕了員工的公文包,降低了紙質(zhì)材料印刷費,無疑在經(jīng)濟和環(huán)保問題上都做的貢獻。在室外我們更是可以通過實時查看數(shù)據(jù)的方式,了解需要自己實時處理的問題,也方便辦公者查看和辦公。APP store擁有許多不同的iPhone應(yīng)用,各種辦公方式,激發(fā)人們對辦公的熱情。目前APP store里iPhone辦公類應(yīng)用很多。iPhone改變了人們的信息錄入習(xí)慣,讓人們可以用手指與顯示屏觸摸和滑動輸入,讓使用者更加直觀明了,縮短了使用者與機器的距離。iP

43、hone改變了人們對技術(shù)的觀念,為新一代電子設(shè)備打下基礎(chǔ),如今時尚科技已經(jīng)滲入我們的生活。</p><p>  2.3.3 iPhone的不足</p><p>  優(yōu)點和缺點總是相互存在著,iPhone也不例外。價格是iPhone的硬傷,雖然中國GDP在不斷的增長,但是對于多數(shù)家庭來說花四五千去買一臺電子設(shè)備還是會顯得昂貴。iPhone開發(fā)之初就是面向個人的通信設(shè)備,至今主要還是娛樂和社交

44、功能,因此在思想不夠成熟的時候很容易分散辦公者注意力。iPhone等電子設(shè)備很多畫面都采用明亮的色彩,視覺刺激過于強烈,長時間的觀看會引影響人體健康。iPhone不支持移動存儲設(shè)備,在離開WIFI的環(huán)境中想要分享數(shù)據(jù)顯得很不方便。iPhone是現(xiàn)階段移動辦公輔助工具在業(yè)界的最高水準(zhǔn),如今市場上也出現(xiàn)了很多手機,如基于Android系統(tǒng)的小米、華為、三星等,基于WP系統(tǒng)的諾基亞、HTC、三星等。雖然有部分設(shè)備硬件性能、便攜性上超越了同期的

45、iPhone,但是是應(yīng)用的數(shù)量與質(zhì)量、用戶體驗、續(xù)航能力、性價比等還是不能和iPhone比擬的。因此只要合理使用,在條件允許的情況下iPhone是移動辦公的不二良選。</p><p><b>  2.4 技術(shù)簡介</b></p><p>  2.4.1 MVC模式</p><p>  MVC全名是Model View Controller,是模

46、型(model)-視圖(view)-控制器(controller)的縮寫,也是構(gòu)成這種框架的三個部分如圖2.3所示。MVC是一種軟件設(shè)計的典范思想,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,降低耦合,可以說任何一個完整的應(yīng)用都是由MVC構(gòu)成的。</p><p>  a)Model(模型)是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分,通常模型對象負(fù)責(zé)在數(shù)據(jù)庫中存取數(shù)據(jù)。模型不需要知道數(shù)據(jù)是怎樣被試圖呈現(xiàn)的,也

47、不關(guān)心是怎樣被控制器操作的。</p><p>  圖2.3 MVC框架圖</p><p>  b)View(視圖)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。視圖不能直接與數(shù)據(jù)通信,使用dataSourcr接口從控制器獲取數(shù)據(jù)信息。</p><p>  c)Controller(控制器)是應(yīng)用程序中處理用戶交互的部分。通常控制器負(fù)責(zé)從視圖讀取數(shù)據(jù)

48、,控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。在iOS程序開發(fā)過程中視圖和控制器之間的通信是固定的,主要通過outlet和action來實現(xiàn)。</p><p>  在MVC架構(gòu)下,視圖和模型是兩個完全獨立的成分,以控制器為中介進行交互者,兩者沒有直接的聯(lián)系。開發(fā)者編寫的對象可以很容易劃分到其中的某個部分,也就是低耦合,這種模式適用與大多數(shù)語言編程,不僅僅是Objective-C。</p><p>  

49、2.4.2 iOS內(nèi)存管理</p><p>  程序運行時,開辟的內(nèi)存空間。使用它,釋放它的過程,寫的好的程序盡可能少使用內(nèi)存。Objective-C的內(nèi)存管理機制與.Net/Java那種全自動的垃圾回收機制是不同的,它本質(zhì)上還是C語言中的手動管理方式,只不過稍微加了一些自動方法。內(nèi)存管理模式基于對象的“所有權(quán)”上。任何對象都會被有一個或多個使用者引用,只要對象還有一個使用者,該對象就應(yīng)該繼續(xù)存在。如果一個對象沒

50、有使用者了,系統(tǒng)將自動銷毀它。為了讓開發(fā)者清晰的了解:使用對象和不再使用對象的場景,Cocoa設(shè)置了以下策略:</p><p>  (1)管好自己創(chuàng)建的對象。開發(fā)者使用alloc、new、copy和mutableCopy來創(chuàng)建對象。</p><p>  (2)使用retain來獲得對象的所有權(quán)。某個函數(shù)接受的對象,通常保證在該函數(shù)調(diào)用期間仍然可用,并可以安全返回對象給上層調(diào)用者。開發(fā)者在以

51、下兩種情況下使用retain</p><p>  a在“訪問函數(shù)”(accessor)的實現(xiàn)中或者在init方法,為了將對象作為自己的屬性。</p><p>  b防止對象被其他操作釋放掉,從而變?yōu)闊o效的對象。</p><p>  (3)當(dāng)你不在需要的時候,必須放棄對象所有權(quán)。</p><p>  2.4.3單例、委托、通知、block<

52、;/p><p>  單例設(shè)計模式Singleton,單例模式的意思就是只有一個實例,單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例,這個類稱為單例類。單例模式的要點有三個;一是某個類只能有一個實例;二是它必須自行創(chuàng)建這個實例;三是它必須自行向整個系統(tǒng)提供這個實例。單例模式的優(yōu)點有:實例控制:Singleton 會阻止其他對象實例化其自己的 Singleton 對象的副本,從而確保所有對象都訪

53、問唯一實例。靈活性:因為類控制了實例化過程,所以類可以更加靈活修改實例化過程。在objective-c中要實現(xiàn)一個單例類,至少需要做以下四個步驟:</p><p>  a)為單例對象實現(xiàn)一個靜態(tài)實例,并初始化,然后設(shè)置成nil。  b)實現(xiàn)一個實例構(gòu)造方法檢查上面聲明的靜態(tài)實例是否為nil,如果是則新建并返回一個本類的實例?! )重寫allocWithZone方法,用來保證其他人直接使用alloc和init

54、試圖獲得一個新實力的時候不產(chǎn)生一個新實例。  d)適當(dāng)實現(xiàn)allocWitheZone,copyWithZone,release和autorelease。</p><p>  delegate中文叫做委托,通常會用在class內(nèi)部把一些事件處理"委托"給別人去完成。委托設(shè)計模式的實質(zhì)就是指針的傳遞。傳遞指針的問題在于,對方持有了對象指針之后是不安全也不合理的,因為當(dāng)有了對象指針就可以操作對象

55、中任何內(nèi)容,所以這時候采用委托就很好的避免了對指針的操作。舉個例子,XML Parser可能他知道怎么parse xml,但是parse到的東西要怎么處理xml parser可能不知道。所以NSXMLParser就提供了一個NSXMLParserDelegate給client去實作,當(dāng)parse到某個element的時候,就callback delegate所定義的message, 讓他client自己去決定怎么去處理這個e

56、lement。</p><p>  通知即NSNotificationCenter,是專門供程序中不同類間的消息通信而設(shè)置的。每個運行中的application都有一個NSNotificationCenter的成員變量,它的功能就類似公共欄。對象注冊關(guān)注某個確定的notification(如果有人撿到一只小狗,就去告訴我)。我們把這些注冊對象叫做observer。其它的一些對象會給center發(fā)送notifica

57、tions(我撿到了一只小狗)。center將該notifications轉(zhuǎn)發(fā)給所有注冊對該notification感興趣的對象。我們把這些發(fā)送notification的對象叫做poster。</p><p>  block的實際行為和Function很像,最大的差別是在可以存取同一個Scope的變量值。block實體形式如下:</p><p>  ^(傳入?yún)?shù)列){行為主體};</

58、p><p>  block實體開頭是“^”,接著是由小括號所包起來的參數(shù)列(比如 int a,int b,int c),行為主體由大括號包起來,專有名字叫做block literal。行為主體可以用return回傳值,類型會被compiler自動辨別。如果沒有參數(shù)列要寫成: ^(void)。</p><p>  3 軟件體系架構(gòu)與設(shè)計</p><p>  3.1軟件整體

59、架構(gòu)設(shè)計</p><p>  派卡系統(tǒng)平臺iPhone客戶端的構(gòu)建完全遵循MVC的設(shè)計模式,同時構(gòu)建基于iOS系統(tǒng)的軟件所使用的SDK都是遵循MVC設(shè)計模式的。根據(jù)公司需求,軟件首先需要實現(xiàn)與服務(wù)器之間的數(shù)據(jù)通信,然后軟件框架分為派卡首頁、派卡記錄統(tǒng)計、信息查詢錄入、套餐實時報價等模塊,具體框架如圖3.1。</p><p>  圖3.1 客戶端功能模塊圖</p><p

60、>  框架采用基于C/S模式的三層架構(gòu),分別是:用戶界面層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層。界面層主要由iPhone客戶端完成,業(yè)務(wù)邏輯層在web服務(wù)器上,數(shù)據(jù)層主要是寫本地數(shù)據(jù)庫和緩存。</p><p>  3.2功能性需求分析與設(shè)計</p><p>  3.2.1網(wǎng)絡(luò)通信模塊</p><p>  網(wǎng)絡(luò)通信是本應(yīng)用軟件的基本支撐,通過訪問網(wǎng)絡(luò)得知服務(wù)器數(shù)據(jù)的變化,從

61、而呈現(xiàn)不同的課程也界面功能。當(dāng)網(wǎng)絡(luò)通信故障、或者網(wǎng)絡(luò)切換時,需要有相應(yīng)的提示信息告知用戶。</p><p><b>  3.2.2登錄模塊</b></p><p>  用戶登錄功能是本應(yīng)用軟件的一項基本功能,用戶必須在登錄狀態(tài)下進行查詢、錄入等功能。在一定得時間內(nèi),應(yīng)用軟件會保存用戶的登錄狀態(tài),勉強了用戶反復(fù)登錄的麻煩。用戶必須輸入公司發(fā)放的用戶名和密碼組合,使用虛擬

62、鍵盤登錄。會在本地判斷輸入信息是否合法,然后發(fā)送給服務(wù)器比較。服務(wù)器返回“登錄成功”時登入系統(tǒng),否則提示錯誤,需要重新登錄。</p><p>  用戶注冊模塊是為了用戶使用本應(yīng)用軟件的特殊功能的通道,用戶登陸時,同一個賬號只能激活一臺iPhone手機,若再激活另外設(shè)備,則需要進行系統(tǒng)備案,需要后天進行審批。應(yīng)用軟件登錄模塊的實際圖如圖3.2所示。</p><p>  圖3.2 用戶登錄子模

63、塊實際圖</p><p><b>  3.2.3首頁模塊</b></p><p>  系統(tǒng)首頁界面是用戶登陸之后看見的第一個界面,派卡首頁是需要登錄才能查看的界面,通過相應(yīng)的操作可以跳轉(zhuǎn)到相應(yīng)的功能模塊。課程首頁分為車牌錄入、套餐查詢和記錄統(tǒng)計。其中套餐查詢是由服務(wù)器返回套餐分類以及詳情查看的模塊,記錄統(tǒng)計將由服務(wù)器返回之前的派卡記錄,接下來的就是本系統(tǒng)的車牌錄入模塊

64、,車牌錄入是通過車牌信息進行相關(guān)操作的模塊。派卡首頁模塊的實際圖如圖3.3所示。</p><p>  圖3.3 派卡首頁模塊實際圖</p><p>  3.2.4車牌錄入模塊</p><p>  車牌錄入模塊是本應(yīng)用軟件重點功能,車牌錄入模塊是通過輸入相應(yīng)車牌,查找相應(yīng)車牌信息,對之前有過記錄的車牌信息進行顯示,已經(jīng)聯(lián)系人的添加以及修改,通過添加派卡記錄,可對相應(yīng)車

65、牌的客戶進行禮品贈券的派發(fā)以及記錄。其中車牌的輸入可以通過手動輸入或者通過拍照識別車牌進行操作,拍照識別是通過手機拍照,然后截取圖片,將圖片傳入底層C++模塊,讓底層C++識別車牌,然后返回識別出來的車牌。車牌錄入模塊的實際圖如圖3.4所示。</p><p>  圖3.4 車牌錄入模塊實際圖</p><p>  3.2.5派卡記錄查詢模塊</p><p>  派卡記

66、錄查詢模塊是客戶端通過post請求,與服務(wù)器后天進行數(shù)據(jù)交互,獲得之前該登陸賬號的派發(fā)記錄,然后通過界面的形式,將數(shù)據(jù)顯示出來。能給讓用戶對自己之前的派發(fā)記錄有一個了解。派卡記錄查詢模塊的實際圖如圖3.5所示。</p><p>  圖3.5 派卡記錄查詢模塊實際圖</p><p>  3.2.6套餐報價查詢模塊</p><p>  套餐報價查詢模塊是本應(yīng)用軟件的對現(xiàn)

67、有套餐顯示的界面,在用戶在進行派卡之余可以通過套餐資訊了解相應(yīng)的套餐信息,增加用戶的知識面。從了提高用戶對套餐的了解,更好的服務(wù)客戶。給用戶帶來一個較好的使用體驗,會有眼前一新的感覺。套餐報價查詢模塊的實際圖如圖3.6所示。</p><p>  圖3.6套餐報價查詢模塊實際圖</p><p><b>  3.2.7設(shè)置模塊</b></p><p&g

68、t;  設(shè)置模塊包含版本更新,默認(rèn)車牌前綴設(shè)置以及緩存,其中首次登錄更新緩存。設(shè)置模塊的實際圖如圖3.7所示。</p><p>  圖3.7設(shè)置模塊實際圖</p><p><b>  4 項目功能實現(xiàn)</b></p><p>  4.1啟動界面動畫實現(xiàn)</p><p>  啟動界面在iOS Apps中比較常見,也包括一些

69、桌面應(yīng)用程序,就是啟動應(yīng)用軟件的時候看到的第一個界面。iPhone啟動界面分為兩種方式,一種是使用系統(tǒng)自帶的,按規(guī)則定義啟動圖片名稱即可,顯示為1秒,要想延長時間,用[nsthread ? sleepForTimeInterval:5.0] ,另一種就是自定義uiivew,加到window中去。由于本應(yīng)用軟件想給用戶一個不一樣的體驗,同時也向用戶加入了一個微廣告的目的。所以在不影響應(yīng)用軟件正常啟動效果的情況下,采用了兩種方式相結(jié)合。即在

70、應(yīng)用軟件按方式一添加啟動畫面的同時,在AppDelegate.m對象內(nèi)的application didFinishLaunchingWithOptions方法里面加入了一個UIView動畫,再使用NSTimer讓動畫結(jié)束后隱藏啟動畫面。這樣即有了良好的用戶體驗,又加入了不會讓用戶反感的微廣告。這種做法已經(jīng)被業(yè)界接受,很多應(yīng)用軟件都嘗試著在這樣做。</p><p><b>  4.2網(wǎng)絡(luò)與數(shù)據(jù)</b

71、></p><p>  4.2.1網(wǎng)絡(luò)通信模塊實現(xiàn)</p><p>  網(wǎng)絡(luò)通信模塊負(fù)責(zé)實現(xiàn)服務(wù)器與客戶端之間的數(shù)據(jù)通信功能,iOS系統(tǒng)的網(wǎng)絡(luò)通信對象是NSURLConnection,NSURLConnection提供對網(wǎng)絡(luò)異步加載請求的支持,并且將獲取的數(shù)據(jù)返回給代理方法connection didReceiveData。提供了簡單的接口去創(chuàng)建和取消連接,同時使用delegate方

72、法去支持連接過程的反饋和控制 。在實際開發(fā)中直接用的不多,所以對NSURLConnection進行了封裝,實現(xiàn)了DownLoad類和DownLoadFinish類。在原有單條數(shù)據(jù)通信外,實現(xiàn)了多線程下載,也就是同時多條數(shù)據(jù)下載。DownLoadFinish為單例類,整個應(yīng)用軟件中使用的DownLoadFinish都是同一個對象,方便了對服務(wù)器通信的管理。日常生活中,用戶可能在不同的網(wǎng)絡(luò)環(huán)境下使用應(yīng)用軟件,因此使用了Reachabilit

73、y和netReachability來檢測網(wǎng)絡(luò)環(huán)境的連接情況,Reachability給定了三種網(wǎng)絡(luò)狀態(tài),如表4.1所示。應(yīng)用軟件啟動的同時會對網(wǎng)絡(luò)環(huán)境進行檢查,在AppDelegate.m中完成此工作。在應(yīng)用軟件運行的過程中,應(yīng)用軟件會對網(wǎng)絡(luò)連接</p><p>  表4.1 Reachability三種網(wǎng)絡(luò)狀態(tài)</p><p>  在應(yīng)用軟件中,檢測網(wǎng)絡(luò)環(huán)境的相關(guān)核心代碼如下所示。<

74、;/p><p>  a)檢測當(dāng)前網(wǎng)絡(luò)環(huán)境是否是WiFi</p><p>  + (BOOL)IsEnableWIFI {</p><p>  return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);</p><p>&

75、lt;b>  }</b></p><p>  b)檢測當(dāng)前網(wǎng)絡(luò)環(huán)境是否是3G</p><p>  + (BOOL)IsEnable3G {</p><p>  return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReac

76、hable);</p><p><b>  }</b></p><p>  4.2.2 JSON數(shù)據(jù)解析實現(xiàn)</p><p>  本應(yīng)用軟件的服務(wù)器采用Web Service部署,客戶端與服務(wù)端使用HTTP協(xié)議進行數(shù)據(jù)通信,使用get或者post方法與服務(wù)器交互,最終返回JSON格式數(shù)據(jù)。JSON指的是JavaScript對象表示法(JavaS

77、cript Object Notation),是輕量級的文本數(shù)據(jù)交換格式,獨立于語言和平臺,具有自我描述性。從iOS5開始,APPLE提供了對JSON的原生支持(NSJSONSerialization),但是為了兼容以前的iOS版本,可以使用第三方庫來解析JSON。JSON解析常見的iOS解析方法有TouchJson、 SBJson 、JSONKit 和 iOS5所支持的原生的JSON方法等,其中系統(tǒng)的API的解析速度最快,我們在工程項

78、目中選擇使用。</p><p><b>  4.3登錄模塊</b></p><p>  4.3.1用戶登錄子模塊實現(xiàn)</p><p>  本應(yīng)用軟件用戶登錄子模塊主要實現(xiàn)用戶賬號密碼信息的輸入、驗證,最終完成登錄。由于用戶賬號密碼的保密性,登錄數(shù)據(jù)請求參數(shù)做了加密處理,可以有效的保護用戶隱私。登錄請求參數(shù)見表4.2,用戶登錄核心方法見表4.3。

79、</p><p>  表4.2 登錄請求參數(shù)表</p><p>  表4.3 登錄核心方法表</p><p>  用戶登錄子模塊使用了UITextField、UIImageView、UIButton、UIAlertView等控件進行視圖的布局,應(yīng)用軟件登錄子模塊的實際圖如圖4.1所示。</p><p>  圖4.1 用戶登錄子模塊實際圖<

80、;/p><p><b>  4.4登陸模塊實現(xiàn)</b></p><p><b>  4.4.1登陸實現(xiàn)</b></p><p>  登陸需要的UUID是由KeychainItemWrapper第三方封裝實現(xiàn),首先,簡單介紹一下UDID這個東西:UDID是Unique Device Identifier的簡稱,也就是唯一設(shè)備標(biāo)識

81、的意思。于iOS SDK中取得的方法是UIDevice的一個叫uniqueIdentifier的NSString*,由于這個ID字符串是基于設(shè)備的,應(yīng)用開發(fā)人員可以通過獲取此ID來用于記錄區(qū)分設(shè)備。正是由于這個特性,可能會導(dǎo)致一些隱私等等相關(guān)的問題,Apple于iOS5中將這個UDID廢掉了,SDK中被標(biāo)記為了Deprecated,雖然為了兼容低版本的源代碼而繼續(xù)存在,但并不會再返回任何有實際意義的東西。</p><

82、p>  在做派卡登陸這個功能時,發(fā)現(xiàn)還是需要用到可以識別設(shè)備的東西的,對設(shè)備經(jīng)行備案,使一個賬號只能激活一臺設(shè)備,經(jīng)過一段時間的研究、試驗,發(fā)現(xiàn)了這個應(yīng)該還算是比較靠譜的方法……</p><p>  其實早在UDID被deprecated的消息剛出來時,就已經(jīng)有很多人開始研究對策了,我也google到了各種五花八門的解決方案,最后還是覺得這個UUID的方案比較合適,畢竟是蘋果官方文檔里推薦的替換UDID的方

83、法.</p><p>  關(guān)于UUID的具體說明可以查看下面參考文章中給出的蘋果官方文檔鏈接。簡單來說,UUID就是一個隨機序列字符串生成器,有點像Microsoft Windows的COM GUID生成器的作用,比起自己隨機一個字符串的好處就是這東西能夠保證唯一性,適用于標(biāo)記。這樣的做法把生成的ID保存起來,下次再用的時候就直接讀取已經(jīng)保存的ID了。顯然,那個UUID生成只是個“隨機字符串”生成器,并不能像UD

84、ID那樣保證每次取得的串都一樣!保存起來雖然能保證用戶再次打開這個應(yīng)用時,能夠獲得一致的標(biāo)識ID,但不能保證用戶刪除應(yīng)用重新安裝后這個ID的一致性,因為NSUserDefaults只是個像游戲存檔一樣的東西,游戲刪了,存檔也就跟著一塊刪了。所以,這個“存存檔”的方法并不是一個比較完善的解決方案,一個更好的做法是利用keychain保存這個生成的UUID。</p><p>  KeychainItemWrapper

85、 *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"deviceIdentifier" accessGroup:nil];</p><p>  NSString *uniqueIdentifier = [wrapper objectForKey:(id)kSecAttrAccount];</p><p&

86、gt;  NSLog(@"device_identifier:%@",uniqueIdentifier);</p><p>  if ([uniqueIdentifier isEqualToString:@""]) {</p><p>  [wrapper setObject:getuuid() forKey:(id)kSecAttrAccount]

87、;</p><p><b>  }</b></p><p>  uniqueIdentifier = [wrapper objectForKey:(id)kSecAttrAccount];</p><p>  [wrapper release]; </p><p>  4.4.2備案功能實現(xiàn)</p>&l

88、t;p>  備案功能主要賬號第一次登入手機無需備案,如更換手機則需進行申報備案、審批。備案也同樣需要UUID。</p><p><b>  代碼如下:</b></p><p>  KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"device

89、Identifier" accessGroup:nil];</p><p>  NSString *uniqueIdentifier = [wrapper objectForKey:(id)kSecAttrAccount];</p><p>  if ([uniqueIdentifier isEqualToString:@""]) {</p>&

90、lt;p>  [wrapper setObject:getuuid() forKey:(id)kSecAttrAccount];</p><p><b>  }</b></p><p>  uniqueIdentifier = [wrapper objectForKey:(id)kSecAttrAccount];</p><p>  [w

91、rapper release];</p><p>  NSString *strUrl = [NSString stringWithFormat:@"uname=%@&DeviceID=%@",_textfield.text,uniqueIdentifier];</p><p>  [_dlm addDownLoadWithURLString:kADDDEVIC

92、ELOGAPI_URL andType:8 andPost:YES andPostStr:strUrl];</p><p>  4.5智能拍照識別功能實現(xiàn)</p><p>  智能拍照識別是通過相機拍照,通過第三方庫對照片進行處理,將圖片傳入底層核心C++,底層通過對圖片處理,對圖片中車牌的符號一個識別,然后將識別結(jié)果傳回,得到照片車牌的車牌號碼。拍照識別功能的實際圖如圖4.2所示。<

93、;/p><p>  圖4.2 拍照識別功能實際圖</p><p><b>  4.6定位功能實現(xiàn)</b></p><p>  定位功能通過蘋果自帶的定位功能,由于蘋果在iOS8.0+下CLLocationManager定位服務(wù)需要授權(quán)。在Info.plist文件還要加上NSLocationWhenInUseUsageDescription這個key

94、,Value可以為空,。</p><p>  定位功能核心代碼如下:</p><p>  - (void)maplocation</p><p><b>  {</b></p><p>  _locationManager = [[CLLocationManager alloc] init];</p>&l

95、t;p>  if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {</p><p>  #ifdef __IPHONE_8_0</p><p>  if ([_locationManager respondsToSelector:@selector(requestAlw

96、aysAuthorization)])</p><p><b>  {</b></p><p>  [_locationManager performSelector:@selector(requestAlwaysAuthorization)];//用這個方法,plist中需要NSLocationAlwaysUsageDescription</p>&l

97、t;p><b>  }</b></p><p>  if ([_locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)])</p><p><b>  {</b></p><p>  [_locationManager p

98、erformSelector:@selector(requestWhenInUseAuthorization)];//用這個方法,plist里要加字段</p><p><b>  }</b></p><p><b>  #endif</b></p><p><b>  }</b></p>

99、<p><b>  // 設(shè)置代理</b></p><p>  _locationManager.delegate = self;</p><p>  // 定位的頻率(位置變化多少發(fā)送)</p><p>  _locationManager.distanceFilter = kCLDistanceFilterNone;</p

100、><p>  // 定位的精準(zhǔn)(十米誤差)</p><p>  _locationManager.desiredAccuracy = kCLLocationAccuracyBest;</p><p><b>  // 開始更新位置</b></p><p>  [_locationManager startUpdatingLo

101、cation];</p><p><b>  }</b></p><p>  // 當(dāng)位置更新時調(diào)用此方法</p><p>  - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations</p><p

102、><b>  { </b></p><p>  //此處locations存儲了持續(xù)更新的位置坐標(biāo)值,取最后一個值為最新位置,如果不想讓其持續(xù)更新位置,則在此方法中獲取到一個值之后讓locationManager stopUpdatingLocation</p><p>  CLLocation *currentLocation = [locations

103、lastObject];</p><p>  CLLocationCoordinate2D coor = currentLocation.coordinate;</p><p><b>  //經(jīng)度</b></p><p>  _CompLongitudeTextField.text = [NSString stringWithFormat:@

104、"%f",coor.longitude];</p><p><b>  //緯度</b></p><p>  _CompLatitudeTextField.text = [NSString stringWithFormat:@"%f",coor.latitude];</p><p>  CLGeocod

105、er *geocoder = [[CLGeocoder alloc] init];</p><p>  [geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error) {</p><p>  CLPlacemark *firstPlacemar

106、k=[placemarks firstObject];</p><p>  _paikeplaceTextField.text=firstPlacemark.name;</p><p>  NSLog(@"地址:%@",_paikeplaceTextField.text);</p><p><b>  }];</b><

107、/p><p>  [_locationManager stopUpdatingLocation];</p><p><b>  }</b></p><p>  4.7檢測更新功能實現(xiàn)</p><p>  檢測更新是通過獲取當(dāng)前使用APP的版本以及服務(wù)器中APP的最新版本,通過兩者的比較,如果服務(wù)器中APP的版本號比當(dāng)前使用的

108、APP的版本號高,則可進行版本更新。檢測更新功能的實際圖如圖4.3所示。</p><p>  圖4.3 拍照識別功能實際圖</p><p>  5項目性能測試及運行情況</p><p><b>  5.1項目性能測試</b></p><p>  本應(yīng)用軟件是iPhone版的,固然不支持iPad設(shè)備。所有的iPhone硬件

109、性能、屏幕分辨率、屏幕尺寸等可能會不一樣,但是開發(fā)人員最關(guān)心的是屏幕寬高比。目前所有iPhone的型號相對Android來說很少,所有開發(fā)人員不用花太多力氣去適配屏幕。在測試的過程中也減少了跨終端測試,所以測試數(shù)據(jù)要穩(wěn)定很多。但是由于網(wǎng)絡(luò)環(huán)境的千差萬別加上時間與條件的限制,本應(yīng)用軟件沒有進行大規(guī)模的針對網(wǎng)絡(luò)環(huán)境的測試。本應(yīng)用軟件測試其他性能均使用WiFi網(wǎng)絡(luò)環(huán)境,使用iPhone Air硬件設(shè)備。重點的測試對象是內(nèi)存泄漏測試、與服務(wù)器數(shù)

110、據(jù)匹配測試、用戶體驗測試、基本功能測試,內(nèi)存測試使用Instruments工具,如圖5.1所示:</p><p>  圖5.1 Instruments內(nèi)存檢測圖</p><p>  測試發(fā)現(xiàn)視頻播放有輕微的內(nèi)存泄漏,查找原因發(fā)現(xiàn)是重復(fù)創(chuàng)建播放對象產(chǎn)生的,將對象做為全局的對象只alloc一次解決了問題。</p><p>  在應(yīng)用軟件重復(fù)測試的時候發(fā)現(xiàn)了閃退的問題,后

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論