![基于iOS的派卡系統(tǒng)設(shè)計與應(yīng)用設(shè)計說明_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/025bbbab-d785-4caf-b928-eee688c2ffdd/025bbbab-d785-4caf-b928-eee688c2ffdd1.gif)
![基于iOS的派卡系統(tǒng)設(shè)計與應(yīng)用設(shè)計說明_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/025bbbab-d785-4caf-b928-eee688c2ffdd/025bbbab-d785-4caf-b928-eee688c2ffdd2.gif)
![基于iOS的派卡系統(tǒng)設(shè)計與應(yīng)用設(shè)計說明_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/025bbbab-d785-4caf-b928-eee688c2ffdd/025bbbab-d785-4caf-b928-eee688c2ffdd3.gif)
![基于iOS的派卡系統(tǒng)設(shè)計與應(yīng)用設(shè)計說明_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/025bbbab-d785-4caf-b928-eee688c2ffdd/025bbbab-d785-4caf-b928-eee688c2ffdd4.gif)
![基于iOS的派卡系統(tǒng)設(shè)計與應(yīng)用設(shè)計說明_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/025bbbab-d785-4caf-b928-eee688c2ffdd/025bbbab-d785-4caf-b928-eee688c2ffdd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 目 錄摘 要I關(guān)鍵詞IAbstractIKey wordsII1前言11.1研究背景與意義11.2移動辦公國外發(fā)展現(xiàn)狀12開發(fā)環(huán)境與相關(guān)技術(shù)22.1 iOS系統(tǒng)與Objective-C簡介22.2開發(fā)環(huán)境32.2.1 Xcode IDE32.2.2 iPhone模擬器42.2.3 Instruments52.3 運行環(huán)境52.3.1 iPhone的硬件規(guī)格52.3.2 iPhone在線辦公上的優(yōu)勢52.3.3 iPhone的不足62.4 技術(shù)簡介62.4.1 MVC模式62.4.2 iOS存管理72.4.3單例、委托、通知、block73 軟件體系架構(gòu)與設(shè)計83.1軟件整體架構(gòu)設(shè)計93.2功
2、能性需求分析與設(shè)計103.2.1網(wǎng)絡(luò)通信模塊103.2.2登錄模塊103.2.3首頁模塊103.2.4車牌錄入模塊113.2.5派卡記錄查詢模塊113.2.6套餐報價查詢模塊123.2.7設(shè)置模塊124 項目功能實現(xiàn)134.1啟動界面動畫實現(xiàn)134.2網(wǎng)絡(luò)與數(shù)據(jù)134.2.1網(wǎng)絡(luò)通信模塊實現(xiàn)134.2.2 JSON數(shù)據(jù)解析實現(xiàn)144.3登錄模塊144.3.1用戶登錄子模塊實現(xiàn)144.4登陸模塊實現(xiàn)154.4.1登陸實現(xiàn)154.4.2備案功能實現(xiàn)174.5智能拍照識別功能實現(xiàn)174.6定位功能實現(xiàn)184.7檢測更新功能實現(xiàn)195項目性能測試與運行情況205.1項目性能測試205.2項目運行情況2
3、1總結(jié)22參考文獻(xiàn)23致2427 / 31基于iOS的派卡系統(tǒng)設(shè)計與應(yīng)用摘 要網(wǎng)絡(luò)技術(shù)與移動技術(shù)推動了移動互聯(lián)網(wǎng)的迅速發(fā)展,導(dǎo)致新一代移動端設(shè)備的迅速發(fā)展,在這種背景下移動辦公應(yīng)運而生,從而漸漸改變了人們的辦公方式,也改變著傳統(tǒng)的工作模式。移動辦公為自主辦公提供了便捷,使它成為當(dāng)前新工作模式的主流。本文在分析國外相關(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ù)進(jìn)行了詳細(xì)介紹
4、,并介紹了設(shè)計和用戶體驗上的具體優(yōu)化,給出了APP的性能測試。關(guān)鍵詞移動技術(shù);iPhone;iOS ;APPPaika System Design and Application Based on iOSAbstractNetwork 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 backgroun
5、d, Mobile office arises, it gradually changed the way of peoples 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. In this paper, on the base of analyzing the situation which is
6、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 design gradually. This application is according to the characteristics in the process of mobile office, starting from the analysis of users demand. It rea
7、lized the query and input of license plate information, the statistics of querying sent cards record, the query of package which can offer real-time quotation and so on through the research and development of mobile office system task. In this paper, there is a detailed introduction about the theory
8、 of knowledge and related technology which are used in the system. And it also introduces the specific optimization of design and users experience, givesa performance test of the APP.Key wordsMobile technology;iPhone;iOS;APP1前言1.1研究背景與意義隨著移動網(wǎng)絡(luò)時代的來臨,手機、平板電腦、上網(wǎng)本等移動終端迅速發(fā)展,市場不斷擴大,用戶群也在不斷擴大。又移動網(wǎng)絡(luò)寬帶飛躍式的增長
9、,3G、4G、WiFi網(wǎng)絡(luò)的普與,為移動設(shè)備的發(fā)展注入了新的動力。當(dāng)人們在傳統(tǒng)的辦公形式中,通過紙質(zhì)、電腦等途徑辦公的時候。辦公效率的問題,一直困擾著人們。就在這時候,在線辦公已經(jīng)悄悄的走到身邊。移動在線辦公輕松的解決了傳統(tǒng)模式的辦公難題,員工不管在哪都能夠享受到實時辦公。信息實時的優(yōu)勢、以與更多的選擇和便利性,是目前的移動在線辦公正顛覆傳統(tǒng)辦公方式的三大有利因素。十年前你想聽實時辦公可能是白日夢,那互聯(lián)網(wǎng)發(fā)展的今天,這些都成為了可能。很多歐美國家已普遍接受在線辦公的模式,這種依托在線辦公系統(tǒng)完成工作的活動,擺脫了空間和時間限制的優(yōu)勢是當(dāng)前辦公技術(shù)領(lǐng)域的研究熱點。目前人們大多還是在臺式不可移動
10、設(shè)備上辦公,就在近幾年移動設(shè)備的優(yōu)勢越來越明顯,接近與臺式機的性能同時又兼具移動便攜性,人們開始依賴這些設(shè)備生活。2007年美國蘋果公司的iPhone發(fā)布后,給移動教育解決了這一大難題。紛紛有美國、新加坡、法國、英國等多個國家開始將iPhone引用進(jìn)辦公系統(tǒng)中,并引起了員工強大的興趣。通過這種辦公方式節(jié)省了成本,提高了效率,減少了紙質(zhì)文檔的印刷,為環(huán)保做了貢獻(xiàn),也讓人們對iPhone有了新的認(rèn)識。本課題的研究是在以C/S模式設(shè)計和開發(fā)基于iPhone的移動辦公系統(tǒng),目的在于改造現(xiàn)有的辦公模式,同時在可移動使用的iPhone設(shè)備上通過流媒體(在線視頻)技術(shù)來呈現(xiàn)生動形象的辦公容,自由自主的辦公環(huán)
11、境,提高員工的辦公效率,激發(fā)出員工對工作的熱情,其關(guān)鍵是iPhone客戶端應(yīng)用軟件開發(fā)。1.2移動辦公國外發(fā)展現(xiàn)狀業(yè)界早有共識: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年這一比例將達(dá)到83%。但是,在中國,老板們還有心病難除
12、。最近的研究表明,員工喜歡移動辦公,老板卻未必買賬。老板的心結(jié)是顯而易見的:一則懷疑員工到底有沒有在“上班”,二則唯恐企業(yè)有緊急工作時找不到人。這些心病恰恰反映了保守派企業(yè)的短處:管理思想墨守成規(guī),管理方法不具有包容性和應(yīng)變能力。數(shù)家高薪民營企業(yè)的實踐表明,對從事許多項目的員工實行移動辦公,不僅可以降低辦公成本,還能大幅提升辦公效率,更沒有“找不到人”的時候。事實上,移動辦公反而是考察員工責(zé)任心和效率的試金石,就像Cisco 的調(diào)查顯示,其3/5 的員工說他們的工作效率與是否在辦公室無關(guān),超過38%的人認(rèn)為家庭辦公最有效率。與之相對,移動辦公移銷寶的優(yōu)勢卻顯而易見。它不僅挖掘了時間和空間的機會
13、,還把握了效率和價值的機會。對員工而言,移動辦公令自主工作進(jìn)入一個與大勢相合境界。于企業(yè)而言,它節(jié)約辦公費用還在其次,更實惠和核心的是能積極管理勞動力價值成本而不是勞動力價格成本,激發(fā)員工在辦公室之外的工作效能,最挖掘其價值。 仔細(xì)觀察,不難發(fā)現(xiàn),移動辦公不僅在世界圍大受歡迎并被廣泛推廣,在國很多新興小微企業(yè)也是如此。很多新創(chuàng)業(yè)的公司都或多或少引用移動辦公技術(shù),以求企業(yè)的生存和快速發(fā)展。 按照IDC的統(tǒng)計,2011年全球有10億左右移動辦公人員。到2013年,會有11.9億的員工采用移動辦公,占全球員工人數(shù)的34.9%。 移動辦公正在成為新的辦公趨勢。 對于企業(yè)管理者而言,是順勢而為,還是逆潮
14、而動,答案顯而易見。2開發(fā)環(huán)境與相關(guān)技術(shù)2.1 iOS系統(tǒng)與Objective-C簡介iOS是由蘋果公司開發(fā)的移動操作系。蘋果公司在2007年公布了這個操作系統(tǒng),現(xiàn)在iPhone、iPhone、iPod touch等設(shè)備上均使用改移動操作系統(tǒng)。它屬于類Unix核的商業(yè)操作系統(tǒng),具有較強得存管理能力,能同時運行多款軟件。iOS 操作系統(tǒng)支持多點觸控,可與系統(tǒng)進(jìn)行基本手勢交互,包括滑動(swiping)、輕按(tapping)、擠壓(pinehing)與旋轉(zhuǎn)(fntating)。iOS 層次架構(gòu)如圖2.1所示,iOS 大體上可以分為以下四個層次。圖2.1 iOS分層架構(gòu)圖1) 、Core OS 核
15、心層:包含Accelerate Framework、External Accessory Framework、Security Framework、System等幾個框架,為其他方法類的使用提供基礎(chǔ)功能,比如:硬件驅(qū)動、存管理、線程管理、文件系統(tǒng)、網(wǎng)絡(luò)以與標(biāo)準(zhǔn)輸入輸出等。2) 、Core Services核心服務(wù)層:包含Address Book Framework、CFNetwork Framework、Core Data Framework、Core Foundation Framework、Core Location Framework、Core Media Framework、Core
16、Telephony Framework、Event Kit Framework、Foundation Framework、Mobile Core Services 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ù),同時也提供了很多有用的方法類,如:SQLite
17、數(shù)據(jù)庫、iCloud存儲、定位、聯(lián)網(wǎng)以與一些安全服務(wù)等。3) 、Mediah媒體層:包含Core Graphics、Core Animation、OpenGL ES、Core Text、Image I/O、Assets Library Framework、Media Player Framework、AV Foundation、OpenAL、Core Audio Frameworks、AV Foundation、Core Media等,提供了一些媒體技術(shù),包括圖形圖像技術(shù)、 視音頻技術(shù)、 核心動畫技術(shù)等4) 、Cocoa Touch 觸摸層:包括Address Book UI Framewor
18、k、Event Kit UI Framework、Game Kit Framework、iAd Framework、Map Kit Framework、Message UI Framework、UIKit Framework等等,它們是任何應(yīng)用程序的關(guān)鍵架構(gòu),所有應(yīng)用程序里面的各種組件都來自于此,此外還提供了多任務(wù)處理、多點觸控、圖片文字的輸出顯示、文件的存取以與加速計等功能。iOS項目開發(fā)時所使用的語言是Objeelive-C和Cocoa編程。Objective-C是種擴充C的面向?qū)ο蟮木幊涕_發(fā)語言,極度簡化了C+語言,Cocoa是對Objeelive-C的高級封裝,可以大量簡化開發(fā)者的工作
19、量。Objective-C 語言有三個主要特點,首先是有消息傳遞模型,其次是動態(tài)能力,最后是存管理。Objective-C通過支持類定義,方法以與屬性的語法,還有其他可以提高類的動態(tài)擴展能力的結(jié)構(gòu)等,擴展提升了標(biāo)準(zhǔn)的 ANSIC語言。現(xiàn)在Objective-C 主要應(yīng)用于Mac OS X和i0S這兩個NeXTSTEP的派生系統(tǒng),為了在iPhone上面開發(fā) C/S 模式的應(yīng)用,就必須使用Objective-C語言編寫iOS應(yīng)用。2.2開發(fā)環(huán)境2.2.1 Xcode IDE目前iOS應(yīng)用開發(fā)唯一的開發(fā)工具就是Xcode,Xcode6.1是目前最新版本,它是蘋果公司向開發(fā)人員提供的集成開發(fā)環(huán)境,必須
20、運行在Mac OS系統(tǒng)下。它可用于管理工程、編寫代碼、構(gòu)建可執(zhí)行文件、進(jìn)行源碼級調(diào)試、進(jìn)行源代碼倉庫管理、進(jìn)行性能調(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的主界面。最新的Xcode IDE將功能融為一體,主要的功能有編譯器、Fix-it、Interface Builder、源代碼編輯器。a)編譯器。Xcode IDE
21、集成了強大的Objective-C、C、Java、C+開源LLVM編譯器,使得可以生成iPhone、iPhone、iPod Touch等產(chǎn)品調(diào)試用的app。.b)Fix-it。在開發(fā)的過程中難免會因為疏忽造成一些語法錯誤,這時Fix-it就有了它的用武之地,它能夠立即提醒開發(fā)者所犯的代碼錯誤,這對開發(fā)的效率有非常大的提高。c)Interface Builder。在開發(fā)過程中,開發(fā)者需要構(gòu)建很多所需的UI界面,Interface Builder能夠很快速的生成UI界面,并且能夠?qū)崿F(xiàn)代碼與界面的功能。圖2.2 Xcode6.1主界面d)源代碼編輯器。在編寫iPhone應(yīng)用過程中,為了使每個方法每個
22、變量一目了然,開發(fā)者不得不使用較長的名字來分辨它們。源代碼編輯器具有智能的代碼補全功能,它還有代碼折疊、語法高亮、消息起泡等很多實用功能。2.2.2 iPhone模擬器iPhone模擬器即iOS Simulator,在開發(fā)過程中我們需要查看代碼在設(shè)備中的形態(tài),iOS Simulator的運行結(jié)果基本跟真機相似,它有完整的iOS設(shè)備的不同版本與不同機型,非常方便的讓我們可以在很多機型上面測試,解決了我們需要很多真機設(shè)備測試的需求,也是調(diào)試屏幕適配的重要工具。由于電腦缺少了部分硬件所以少數(shù)功能是iOS Simulator不能完成的,比如:定位、加速計、相機、打、3G網(wǎng)絡(luò)等功能,所以有一臺真機進(jìn)行測
23、試也是必不可少的。2.2.3 Instruments為了讓應(yīng)用盡可能完善,在開發(fā)的同時需要保證應(yīng)用是否存在閃退等一系列存泄漏問題,也要保證用戶體驗要好。這時Instruments起到了重要的作用,在iOS應(yīng)用程序運行在真機或者是模擬器上時,可以利用Instruments環(huán)境分析性能。Instruments會清晰的記錄應(yīng)用程序的行為,可以查看存分配等重要指標(biāo)。這些數(shù)據(jù)都可以很方便我們對程序的評估和修改,在很大程度上提升了程序的健壯性。2.3 運行環(huán)境2.3.1 iPhone的硬件規(guī)格由蘋果公司官方在線商店(store.apple./cn)得到iPhone不同型號的硬件規(guī)格,表2.1所示:表2.1
24、 iPhone硬件規(guī)格型號iPhone6 PlusiPhone 6iPhone5siPhone 5ciPhone 5屏幕尺寸5.5英寸4.7英寸4.0英寸4.0英寸4.0英寸處理器A8芯片擁有64位架構(gòu)和M8運動協(xié)處理器A8芯片擁有64位架構(gòu)和M8運動協(xié)處理器A7芯片擁有64位架構(gòu)和M7運動協(xié)處理器A6芯片A6芯片顯示屏Multi-Touch顯示屏Multi-Touch顯示屏Multi-Touch顯示屏Multi-Touch顯示屏Multi-Touch顯示屏分辨率1920X10801134X7501136X6401136X6401136X640攝像頭后800萬像素,前120萬像素后800萬像素
25、,前120萬像素后800萬像素,前120萬像素后800萬像素,前120萬像素后800萬像素,前120萬像素續(xù)航12小時11小時10小時10小時10小時Touch ID指紋識別傳感器指紋識別傳感器指紋識別傳感器-重量172克129克112克132克112克2.3.2 iPhone在線辦公上的優(yōu)勢iPhone的優(yōu)勢之一就是便攜,在地鐵、在公交、在路上,隨時隨地非常方便。iPhone的尺寸相對于電腦來說很小,也很輕,但是iPhone的容遠(yuǎn)遠(yuǎn)大于一個圖書館,對于工作者而言能夠大大的減輕負(fù)擔(dān)。iPhone兼具經(jīng)濟(jì)性與環(huán)保性,如果公司將iPhone應(yīng)用于辦公中,將傳統(tǒng)的紙質(zhì)辦公、電腦辦公裝進(jìn)iPhone,
26、不僅減輕了員工的公文包,降低了紙質(zhì)材料印刷費,無疑在經(jīng)濟(jì)和環(huán)保問題上都做的貢獻(xiàn)。在室外我們更是可以通過實時查看數(shù)據(jù)的方式,了解需要自己實時處理的問題,也方便辦公者查看和辦公。APP store擁有許多不同的iPhone應(yīng)用,各種辦公方式,激發(fā)人們對辦公的熱情。目前APP store里iPhone辦公類應(yīng)用很多。iPhone改變了人們的信息錄入習(xí)慣,讓人們可以用手指與顯示屏觸摸和滑動輸入,讓使用者更加直觀明了,縮短了使用者與機器的距離。iPhone改變了人們對技術(shù)的觀念,為新一代電子設(shè)備打下基礎(chǔ),如今時尚科技已經(jīng)滲入我們的生活。2.3.3 iPhone的不足優(yōu)點和缺點總是相互存在著,iPhone
27、也不例外。價格是iPhone的硬傷,雖然中國GDP在不斷的增長,但是對于多數(shù)家庭來說花四五千去買一臺電子設(shè)備還是會顯得昂貴。iPhone開發(fā)之初就是面向個人的通信設(shè)備,至今主要還是娛樂和社交功能,因此在思想不夠成熟的時候很容易分散辦公者注意力。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è)備
28、硬件性能、便攜性上超越了同期的iPhone,但是是應(yīng)用的數(shù)量與質(zhì)量、用戶體驗、續(xù)航能力、性價比等還是不能和iPhone比擬的。因此只要合理使用,在條件允許的情況下iPhone是移動辦公的不二良選。2.4 技術(shù)簡介2.4.1 MVC模式MVC全名是Model View Controller,是模型(model)視圖(view)控制器(controller)的縮寫,也是構(gòu)成這種框架的三個部分如圖2.3所示。MVC是一種軟件設(shè)計的典思想,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,降低耦合,可以說任何一個完整的應(yīng)用都是由MVC構(gòu)成的。a)Model(模型)是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的
29、部分,通常模型對象負(fù)責(zé)在數(shù)據(jù)庫中存取數(shù)據(jù)。模型不需要知道數(shù)據(jù)是怎樣被試圖呈現(xiàn)的,也不關(guān)心是怎樣被控制器操作的。圖2.3 MVC框架圖b)View(視圖)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。視圖不能直接與數(shù)據(jù)通信,使用dataSourcr接口從控制器獲取數(shù)據(jù)信息。c)Controller(控制器)是應(yīng)用程序中處理用戶交互的部分。通??刂破髫?fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。在iOS程序開發(fā)過程中視圖和控制器之間的通信是固定的,主要通過outlet和action來實現(xiàn)。在MVC架構(gòu)下,視圖和模型是兩個完全獨立的成分,以控制器為中介進(jìn)行交互者,兩者沒有直接的
30、聯(lián)系。開發(fā)者編寫的對象可以很容易劃分到其中的某個部分,也就是低耦合,這種模式適用與大多數(shù)語言編程,不僅僅是Objective-C。2.4.2 iOS存管理程序運行時,開辟的存空間。使用它,釋放它的過程,寫的好的程序盡可能少使用存。Objective-C的存管理機制與.Net/Java那種全自動的垃圾回收機制是不同的,它本質(zhì)上還是C語言中的手動管理方式,只不過稍微加了一些自動方法。存管理模式基于對象的“所有權(quán)”上。任何對象都會被有一個或多個使用者引用,只要對象還有一個使用者,該對象就應(yīng)該繼續(xù)存在。如果一個對象沒有使用者了,系統(tǒng)將自動銷毀它。為了讓開發(fā)者清晰的了解:使用對象和不再使用對象的場景,C
31、ocoa設(shè)置了以下策略:(1)管好自己創(chuàng)建的對象。開發(fā)者使用alloc、new、copy和mutableCopy來創(chuàng)建對象。(2)使用retain來獲得對象的所有權(quán)。某個函數(shù)接受的對象,通常保證在該函數(shù)調(diào)用期間仍然可用,并可以安全返回對象給上層調(diào)用者。開發(fā)者在以下兩種情況下使用retaina在“訪問函數(shù)”(accessor)的實現(xiàn)中或者在init方法,為了將對象作為自己的屬性。b防止對象被其他操作釋放掉,從而變?yōu)闊o效的對象。(3)當(dāng)你不在需要的時候,必須放棄對象所有權(quán)。2.4.3單例、委托、通知、block單例設(shè)計模式Singleton,單例模式的意思就是只有一個實例,單例模式確保某一個類只有
32、一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例,這個類稱為單例類。單例模式的要點有三個;一是某個類只能有一個實例;二是它必須自行創(chuàng)建這個實例;三是它必須自行向整個系統(tǒng)提供這個實例。單例模式的優(yōu)點有:實例控制:Singleton 會阻止其他對象實例化其自己的 Singleton 對象的副本,從而確保所有對象都訪問唯一實例。靈活性:因為類控制了實例化過程,所以類可以更加靈活修改實例化過程。在objective-c中要實現(xiàn)一個單例類,至少需要做以下四個步驟:a)為單例對象實現(xiàn)一個靜態(tài)實例,并初始化,然后設(shè)置成nil。b)實現(xiàn)一個實例構(gòu)造方法檢查上面聲明的靜態(tài)實例是否為nil,如果是則新建并返回一個
33、本類的實例。c)重寫allocWithZone方法,用來保證其他人直接使用alloc和init試圖獲得一個新實力的時候不產(chǎn)生一個新實例。d)適當(dāng)實現(xiàn)allocWitheZone,copyWithZone,release和autorelease。delegate中文叫做委托,通常會用在class部把一些事件處理委托給別人去完成。委托設(shè)計模式的實質(zhì)就是指針的傳遞。傳遞指針的問題在于,對方持有了對象指針之后是不安全也不合理的,因為當(dāng)有了對象指針就可以操作對象中任何容,所以這時候采用委托就很好的避免了對指針的操作。舉個例子,XML Parser可能他知道怎么parse xml,但是parse到的東西要
34、怎么處理xml parser可能不知道。所以NSXMLParser就提供了一個NSXMLParserDelegate給client去實作,當(dāng)parse到某個element的時候,就callback delegate所定義的message,讓他client自己去決定怎么去處理這個element。通知即NSNotificationCenter,是專門供程序中不同類間的消息通信而設(shè)置的。每個運行中的application都有一個NSNotificationCenter的成員變量,它的功能就類似公共欄。對象注冊關(guān)注某個確定的notification(如果有人撿到一只小狗,就去告訴我)。我們把這些注冊對
35、象叫做observer。其它的一些對象會給center發(fā)送notifications(我撿到了一只小狗)。center將該notifications轉(zhuǎn)發(fā)給所有注冊對該notification感興趣的對象。我們把這些發(fā)送notification的對象叫做poster。block的實際行為和Function很像,最大的差別是在可以存取同一個Scope的變量值。block實體形式如下:(傳入?yún)?shù)列)行為主體;block實體開頭是“”,接著是由小括號所包起來的參數(shù)列(比如 int a,int b,int c),行為主體由大括號包起來,專有名字叫做block literal。行為主體可以用return回
36、傳值,類型會被compiler自動辨別。如果沒有參數(shù)列要寫成: (void)。3 軟件體系架構(gòu)與設(shè)計3.1軟件整體架構(gòu)設(shè)計派卡系統(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。圖3.1 客戶端功能模塊圖框架采用基于C/S模式的三層架構(gòu),分別是:用戶界面層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層。界面層主要由iPhone客戶端完成,業(yè)務(wù)邏輯層在web服務(wù)器上,數(shù)據(jù)層主要是寫本地數(shù)據(jù)庫和緩存。
37、3.2功能性需求分析與設(shè)計3.2.1網(wǎng)絡(luò)通信模塊網(wǎng)絡(luò)通信是本應(yīng)用軟件的基本支撐,通過訪問網(wǎng)絡(luò)得知服務(wù)器數(shù)據(jù)的變化,從而呈現(xiàn)不同的課程也界面功能。當(dāng)網(wǎng)絡(luò)通信故障、或者網(wǎng)絡(luò)切換時,需要有相應(yīng)的提示信息告知用戶。3.2.2登錄模塊用戶登錄功能是本應(yīng)用軟件的一項基本功能,用戶必須在登錄狀態(tài)下進(jìn)行查詢、錄入等功能。在一定得時間,應(yīng)用軟件會保存用戶的登錄狀態(tài),勉強了用戶反復(fù)登錄的麻煩。用戶必須輸入公司發(fā)放的用戶名和密碼組合,使用虛擬鍵盤登錄。會在本地判斷輸入信息是否合法,然后發(fā)送給服務(wù)器比較。服務(wù)器返回“登錄成功”時登入系統(tǒng),否則提示錯誤,需要重新登錄。用戶注冊模塊是為了用戶使用本應(yīng)用軟件的特殊功能的通道
38、,用戶登陸時,同一個賬號只能激活一臺iPhone手機,若再激活另外設(shè)備,則需要進(jìn)行系統(tǒng)備案,需要后天進(jìn)行審批。應(yīng)用軟件登錄模塊的實際圖如圖3.2所示。圖3.2 用戶登錄子模塊實際圖3.2.3首頁模塊系統(tǒng)首頁界面是用戶登陸之后看見的第一個界面,派卡首頁是需要登錄才能查看的界面,通過相應(yīng)的操作可以跳轉(zhuǎn)到相應(yīng)的功能模塊。課程首頁分為車牌錄入、套餐查詢和記錄統(tǒng)計。其中套餐查詢是由服務(wù)器返回套餐分類以與詳情查看的模塊,記錄統(tǒng)計將由服務(wù)器返回之前的派卡記錄,接下來的就是本系統(tǒng)的車牌錄入模塊,車牌錄入是通過車牌信息進(jìn)行相關(guān)操作的模塊。派卡首頁模塊的實際圖如圖3.3所示。圖3.3 派卡首頁模塊實際圖3.2.4
39、車牌錄入模塊車牌錄入模塊是本應(yīng)用軟件重點功能,車牌錄入模塊是通過輸入相應(yīng)車牌,查找相應(yīng)車牌信息,對之前有過記錄的車牌信息進(jìn)行顯示,已經(jīng)聯(lián)系人的添加以與修改,通過添加派卡記錄,可對相應(yīng)車牌的客戶進(jìn)行禮品贈券的派發(fā)以與記錄。其中車牌的輸入可以通過手動輸入或者通過拍照識別車牌進(jìn)行操作,拍照識別是通過手機拍照,然后截取圖片,將圖片傳入底層C+模塊,讓底層C+識別車牌,然后返回識別出來的車牌。車牌錄入模塊的實際圖如圖3.4所示。圖3.4 車牌錄入模塊實際圖3.2.5派卡記錄查詢模塊派卡記錄查詢模塊是客戶端通過post請求,與服務(wù)器后天進(jìn)行數(shù)據(jù)交互,獲得之前該登陸賬號的派發(fā)記錄,然后通過界面的形式,將數(shù)據(jù)
40、顯示出來。能給讓用戶對自己之前的派發(fā)記錄有一個了解。派卡記錄查詢模塊的實際圖如圖3.5所示。圖3.5 派卡記錄查詢模塊實際圖3.2.6套餐報價查詢模塊套餐報價查詢模塊是本應(yīng)用軟件的對現(xiàn)有套餐顯示的界面,在用戶在進(jìn)行派卡之余可以通過套餐資訊了解相應(yīng)的套餐信息,增加用戶的知識面。從了提高用戶對套餐的了解,更好的服務(wù)客戶。給用戶帶來一個較好的使用體驗,會有眼前一新的感覺。套餐報價查詢模塊的實際圖如圖3.6所示。圖3.6套餐報價查詢模塊實際圖3.2.7設(shè)置模塊設(shè)置模塊包含版本更新,默認(rèn)車牌前綴設(shè)置以與緩存,其中首次登錄更新緩存。設(shè)置模塊的實際圖如圖3.7所示。圖3.7設(shè)置模塊實際圖4 項目功能實現(xiàn)4.
41、1啟動界面動畫實現(xiàn)啟動界面在iOS Apps中比較常見,也包括一些桌面應(yīng)用程序,就是啟動應(yīng)用軟件的時候看到的第一個界面。iPhone啟動界面分為兩種方式,一種是使用系統(tǒng)自帶的,按規(guī)則定義啟動圖片名稱即可,顯示為1秒,要想延長時間,用nsthread sleepForTimeInterval:5.0 ,另一種就是自定義uiivew,加到window中去。由于本應(yīng)用軟件想給用戶一個不一樣的體驗,同時也向用戶加入了一個微廣告的目的。所以在不影響應(yīng)用軟件正常啟動效果的情況下,采用了兩種方式相結(jié)合。即在應(yīng)用軟件按方式一添加啟動畫面的同時,在AppDelegate.m對象的application didF
42、inishLaunchingWithOptions方法里面加入了一個UIView動畫,再使用NSTimer讓動畫結(jié)束后隱藏啟動畫面。這樣即有了良好的用戶體驗,又加入了不會讓用戶反感的微廣告。這種做法已經(jīng)被業(yè)界接受,很多應(yīng)用軟件都嘗試著在這樣做。4.2網(wǎng)絡(luò)與數(shù)據(jù)4.2.1網(wǎng)絡(luò)通信模塊實現(xiàn)網(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方
43、法去支持連接過程的反饋和控制 。在實際開發(fā)中直接用的不多,所以對NSURLConnection進(jìn)行了封裝,實現(xiàn)了DownLoad類和DownLoadFinish類。在原有單條數(shù)據(jù)通信外,實現(xiàn)了多線程下載,也就是同時多條數(shù)據(jù)下載。DownLoadFinish為單例類,整個應(yīng)用軟件中使用的DownLoadFinish都是同一個對象,方便了對服務(wù)器通信的管理。日常生活中,用戶可能在不同的網(wǎng)絡(luò)環(huán)境下使用應(yīng)用軟件,因此使用了Reachability和netReachability來檢測網(wǎng)絡(luò)環(huán)境的連接情況,Reachability給定了三種網(wǎng)絡(luò)狀態(tài),如表4.1所示。應(yīng)用軟件啟動的同時會對網(wǎng)絡(luò)環(huán)境進(jìn)行檢查,
44、在AppDelegate.m中完成此工作。在應(yīng)用軟件運行的過程中,應(yīng)用軟件會對網(wǎng)絡(luò)連接做實時的檢測,當(dāng)網(wǎng)絡(luò)通信故障或者網(wǎng)絡(luò)環(huán)境切換時,會給用戶一個UIAlertView的提示。表4.1 Reachability三種網(wǎng)絡(luò)狀態(tài)網(wǎng)絡(luò)狀態(tài)NotReachability無連接Reachability Via WiFiWiFi網(wǎng)絡(luò)連接Reachability Via WWAN3G/GPRS網(wǎng)絡(luò)連接在應(yīng)用軟件中,檢測網(wǎng)絡(luò)環(huán)境的相關(guān)核心代碼如下所示。a)檢測當(dāng)前網(wǎng)絡(luò)環(huán)境是否是WiFi+ (BOOL)IsEnableWIFI return (Reachability reachabilityForLocalWi
45、Fi currentReachabilityStatus != NotReachable);b)檢測當(dāng)前網(wǎng)絡(luò)環(huán)境是否是3G+ (BOOL)IsEnable3G return (Reachability reachabilityForInternetConnection currentReachabilityStatus != NotReachable);4.2.2 JSON數(shù)據(jù)解析實現(xiàn)本應(yīng)用軟件的服務(wù)器采用Web Service部署,客戶端與服務(wù)端使用 協(xié)議進(jìn)行數(shù)據(jù)通信,使用get或者post方法與服務(wù)器交互,最終返回JSON格式數(shù)據(jù)。JSON指的是JavaScript對象表示法(JavaSc
46、ript Object Notation),是輕量級的文本數(shù)據(jù)交換格式,獨立于語言和平臺,具有自我描述性。從iOS5開始,APPLE提供了對JSON的原生支持(NSJSONSerialization),但是為了兼容以前的iOS版本,可以使用第三方庫來解析JSON。JSON解析常見的iOS解析方法有TouchJson、 SBJson 、JSONKit 和 iOS5所支持的原生的JSON方法等,其中系統(tǒng)的API的解析速度最快,我們在工程項目中選擇使用。4.3登錄模塊4.3.1用戶登錄子模塊實現(xiàn)本應(yīng)用軟件用戶登錄子模塊主要實現(xiàn)用戶賬號密碼信息的輸入、驗證,最終完成登錄。由于用戶賬號密碼的性,登錄數(shù)據(jù)
47、請求參數(shù)做了加密處理,可以有效的保護(hù)用戶隱私。登錄請求參數(shù)見表4.2,用戶登錄核心方法見表4.3。表4.2 登錄請求參數(shù)表參數(shù)類型說明accountString登錄賬號userPasswordString登錄密碼表4.3 登錄核心方法表核心方法方法說明- (void)btnClick:(UIButton *)btn響應(yīng)用戶點擊頁面登錄鍵事件,實現(xiàn)登錄功能。- (void)didloginAction向服務(wù)器發(fā)送登錄請求處理,并反饋用戶信息。- (void)DownLoadFinish記錄服務(wù)器返回的用戶信息到本地,供下次啟動應(yīng)用軟件使用。用戶登錄子模塊使用了UITextField、UIImag
48、eView、UIButton、UIAlertView等控件進(jìn)行視圖的布局,應(yīng)用軟件登錄子模塊的實際圖如圖4.1所示。圖4.1 用戶登錄子模塊實際圖4.4登陸模塊實現(xiàn)4.4.1登陸實現(xiàn)登陸需要的UUID是由KeychainItemWrapper第三方封裝實現(xiàn),首先,簡單介紹一下UDID這個東西:UDID是Unique Device Identifier的簡稱,也就是唯一設(shè)備標(biāo)識的意思。于iOS SDK中取得的方法是UIDevice的一個叫uniqueIdentifier的NSString*,由于這個ID字符串是基于設(shè)備的,應(yīng)用開發(fā)人員可以通過獲取此ID來用于記錄區(qū)分設(shè)備。正是由于這個特性,可能會
49、導(dǎo)致一些隱私等等相關(guān)的問題,Apple于iOS5中將這個UDID廢掉了,SDK中被標(biāo)記為了Deprecated,雖然為了兼容低版本的源代碼而繼續(xù)存在,但并不會再返回任何有實際意義的東西。在做派卡登陸這個功能時,發(fā)現(xiàn)還是需要用到可以識別設(shè)備的東西的,對設(shè)備經(jīng)行備案,使一個賬號只能激活一臺設(shè)備,經(jīng)過一段時間的研究、試驗,發(fā)現(xiàn)了這個應(yīng)該還算是比較靠譜的方法其實早在UDID被deprecated的消息剛出來時,就已經(jīng)有很多人開始研究對策了,我也google到了各種五花八門的解決方案,最后還是覺得這個UUID的方案比較合適,畢竟是蘋果官方文檔里推薦的替換UDID的方法.關(guān)于UUID的具體說明可以查看下面
50、參考文章中給出的蘋果官方文檔。簡單來說,UUID就是一個隨機序列字符串生成器,有點像Microsoft Windows的COM GUID生成器的作用,比起自己隨機一個字符串的好處就是這東西能夠保證唯一性,適用于標(biāo)記。這樣的做法把生成的ID保存起來,下次再用的時候就直接讀取已經(jīng)保存的ID了。顯然,那個UUID生成只是個“隨機字符串”生成器,并不能像UDID那樣保證每次取得的串都一樣!保存起來雖然能保證用戶再次打開這個應(yīng)用時,能夠獲得一致的標(biāo)識ID,但不能保證用戶刪除應(yīng)用重新安裝后這個ID的一致性,因為NSUserDefaults只是個像游戲存檔一樣的東西,游戲刪了,存檔也就跟著一塊刪了。所以,這
51、個“存存檔”的方法并不是一個比較完善的解決方案,一個更好的做法是利用keychain保存這個生成的UUID。KeychainItemWrapper *wrapper = KeychainItemWrapperalloc initWithIdentifier:deviceIdentifieraccessGroup:nil;NSString *uniqueIdentifier = wrapper objectForKey:(id)kSecAttrAccount;NSLog(device_identifier:%,uniqueIdentifier);if (uniqueIdentifier isEq
52、ualToString:) wrapper setObject:getuuid() forKey:(id)kSecAttrAccount; uniqueIdentifier = wrapper objectForKey:(id)kSecAttrAccount; wrapper release; 4.4.2備案功能實現(xiàn)備案功能主要賬號第一次登入手機無需備案,如更換手機則需進(jìn)行申報備案、審批。備案也同樣需要UUID。代碼如下:KeychainItemWrapper *wrapper = KeychainItemWrapperalloc initWithIdentifier:deviceIdenti
53、fieraccessGroup:nil;NSString *uniqueIdentifier = wrapper objectForKey:(id)kSecAttrAccount;if (uniqueIdentifier isEqualToString:) wrapper setObject:getuuid() forKey:(id)kSecAttrAccount; uniqueIdentifier = wrapper objectForKey:(id)kSecAttrAccount; wrapper release;NSString *strUrl = NSStringstringWithF
54、ormat:uname=%&DeviceID=%,_textfield.text,uniqueIdentifier; _dlmaddDownLoadWithURLString:kADDDEVICELOGAPI_URLandType:8andPost:YESandPostStr:strUrl;4.5智能拍照識別功能實現(xiàn)智能拍照識別是通過相機拍照,通過第三方庫對照片進(jìn)行處理,將圖片傳入底層核心C+,底層通過對圖片處理,對圖片中車牌的符號一個識別,然后將識別結(jié)果傳回,得到照片車牌的車牌。拍照識別功能的實際圖如圖4.2所示。 圖4.2 拍照識別功能實際圖4.6定位功能實現(xiàn)定位功能通過蘋果自帶的定位功能
55、,由于蘋果在iOS8.0+下CLLocationManager定位服務(wù)需要授權(quán)。在Info.plist文件還要加上NSLocationWhenInUseUsageDescription這個key,Value可以為空,。定位功能核心代碼如下:- (void)maplocation_locationManager = CLLocationManageralloc init;if (CLLocationManagerauthorizationStatus = kCLAuthorizationStatusNotDetermined) #ifdef _IPHONE_8_0if (_locationMan
56、agerrespondsToSelector:selector(requestAlwaysAuthorization) _locationManagerperformSelector:selector(requestAlwaysAuthorization);/用這個方法,plist中需要NSLocationAlwaysUsageDescription if (_locationManagerrespondsToSelector:selector(requestWhenInUseAuthorization) _locationManagerperformSelector:selector(requestWhenInUseAuthorization);/用這個方法,plist里要加字段 #endif / 設(shè)置代理_locationManager.delegate = self;/ 定
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘教版地理八年級上冊《第三節(jié) 中國的水資源》聽課評課記錄1
- 人教版八年級地理上冊4.1《交通運輸》聽課評課記錄
- 部編版道德與法治七年級上冊第一單元 成長的節(jié)拍 復(fù)習(xí)聽課評課記錄
- 湘教版數(shù)學(xué)九年級下冊《小結(jié)練習(xí)(2)》聽評課記錄5
- 小學(xué)二年級上冊數(shù)學(xué)口算練習(xí)題人教版新課標(biāo)
- 冀教版數(shù)學(xué)九年級上冊27.2《反比例函數(shù)的圖象和性質(zhì)》聽評課記錄
- 財務(wù)人員保密協(xié)議書范本
- 宿遷商務(wù)樓房屋租賃合同范本
- 購房按揭貸款合同范本
- 2025年度電影演員主演合約中的票房分成及收益分配合同
- m拱頂儲罐設(shè)計計算書
- 2023外貿(mào)業(yè)務(wù)協(xié)調(diào)期中試卷
- 新人教鄂教版(2017)五年級下冊科學(xué)全冊教學(xué)課件
- GB/T 29361-2012電子物證文件一致性檢驗規(guī)程
- GB/T 16475-1996變形鋁及鋁合金狀態(tài)代號
- 無紙化會議系統(tǒng)解決方案
- 上海鐵路局勞動安全“八防”考試題庫(含答案)
- 效率提升和品質(zhì)改善方案
- 義務(wù)教育學(xué)科作業(yè)設(shè)計與管理指南
- 物業(yè)客服培訓(xùn)PPT幻燈片課件(PPT 61頁)
- 《汽車發(fā)展史》PPT課件(PPT 75頁)
評論
0/150
提交評論