基于iOS開發(fā)手機(jī)應(yīng)用程序的研究與實(shí)現(xiàn)(定稿)第一稿_老師注釋版-計(jì)算機(jī)科學(xué)與技術(shù)_第1頁
基于iOS開發(fā)手機(jī)應(yīng)用程序的研究與實(shí)現(xiàn)(定稿)第一稿_老師注釋版-計(jì)算機(jī)科學(xué)與技術(shù)_第2頁
基于iOS開發(fā)手機(jī)應(yīng)用程序的研究與實(shí)現(xiàn)(定稿)第一稿_老師注釋版-計(jì)算機(jī)科學(xué)與技術(shù)_第3頁
基于iOS開發(fā)手機(jī)應(yīng)用程序的研究與實(shí)現(xiàn)(定稿)第一稿_老師注釋版-計(jì)算機(jī)科學(xué)與技術(shù)_第4頁
基于iOS開發(fā)手機(jī)應(yīng)用程序的研究與實(shí)現(xiàn)(定稿)第一稿_老師注釋版-計(jì)算機(jī)科學(xué)與技術(shù)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 本科生畢業(yè)論文基于iOS開發(fā)手機(jī)應(yīng)用程序的研究與實(shí)現(xiàn)院 系: 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級:2011級計(jì)算機(jī)科學(xué)與技術(shù)(1)班 學(xué) 號: 201104220106 姓 名: 馬建國 指導(dǎo)教師: 李金娟 完成時(shí)間: 2015年4月10日 基于iOS開發(fā)手機(jī)應(yīng)用程序的研究與實(shí)現(xiàn)摘 要: 隨著智能手機(jī)越來越深入而廣泛的應(yīng)用,當(dāng)今時(shí)代手機(jī)不再只是用來打電話、發(fā)短信的工具,反而對手機(jī)的娛樂等功能要求越來越高,人們幾乎都是通過手機(jī)來獲取一些信息.本論文主要闡述以iOS開發(fā)平臺為基礎(chǔ),通過使用Xcode開發(fā)工具并參考其提供的API以及Objective-C和C語言開發(fā)的一款運(yùn)行

2、在iPhone手機(jī)上的汽車報(bào)價(jià)及資訊類應(yīng)用.在開發(fā)的過程中,我首先學(xué)習(xí)了Objective-C語言的相關(guān)語法,Objective-C語言是在C語言的基礎(chǔ)上進(jìn)行一些面向?qū)ο蟮臄U(kuò)充。接下來,開始學(xué)習(xí)iOS應(yīng)用的構(gòu)建原理(學(xué)習(xí)視圖控制器與視圖的使用方法,程序委托的使用等)以及一些常用控件的使用,并嘗試在Xcode工具上搭建一些簡單的界面。在做好這些基礎(chǔ)的準(zhǔn)備后,我開始動(dòng)手搭建應(yīng)用的界面,同時(shí)完成各個(gè)界面之間的跳轉(zhuǎn)。之后,就開始設(shè)計(jì)與實(shí)現(xiàn)。汽車產(chǎn)業(yè)經(jīng)過多年的發(fā)展,已經(jīng)產(chǎn)生了很多的品牌,每個(gè)品牌又有各種車型。我要做的工作是在收集和理解這些信息的基礎(chǔ)上,用自己的話、自己的思想來構(gòu)思并將這些信息加入一些新的

3、想法展示在App上。通過自己的努力,來打造一款與眾不同的、獨(dú)一無二的應(yīng)用。近年來,隨著智能手機(jī)的流行,出現(xiàn)了許多在移動(dòng)操作系統(tǒng)上的手機(jī)應(yīng)用。同時(shí),伴隨著蘋果手機(jī)進(jìn)入中國市場,相應(yīng)的iOS技術(shù)逐漸流行起來.而對于開發(fā)蘋果應(yīng)用的語言O(shè)bject-C,也成為當(dāng)今社會最流行的開發(fā)語言,并且保持著強(qiáng)勁的上升趨勢。所以,開發(fā)一款可以在iOS系統(tǒng)上運(yùn)行的汽車報(bào)價(jià)及資訊類應(yīng)用是非常有意義的。本軟件界面美觀,操作簡單,實(shí)現(xiàn)了應(yīng)用首頁獲取數(shù)據(jù)、展示數(shù)據(jù)等功能,具備了一般應(yīng)用所具有的功能,操作更加高效,具有較強(qiáng)的實(shí)用性。在本論文中,主要闡述了開發(fā)過程中的一些細(xì)節(jié),遇到的問題,解決的方法以及自己的一些感悟。論文摘要以

4、簡要文字介紹研究課題的目的、方法、內(nèi)容及主要結(jié)果,中文摘要400字關(guān)鍵詞: iOS MVC設(shè)計(jì)模式 Objective-C語言 Xcode開發(fā)工具Abstract: As smart phones more in-depth and wide range of applications,not just for todays era of mobile phone calls,text messaging tool,but on the phones entertainment features such as the increasingly high demand,it is almost

5、 always to get through the phone Some information in this paper mainly elaborates iOS development platform,by using the Xcode development tools and reference car quotes and information to run a class of applications API and Objective-C and C-language development of its available on the iPhone.In the

6、 development process,I first learned the relevant syntax of Objective-C language,Objective-C language is some expansion on the basis of object-oriented C language on.Next,begin to learn the principles of building iOS applications(using the method of learning the view controller and the view,the use

7、of the program commission,etc.)and some use common controls and try to build on the Xcode Tools simple interface.After doing these basic preparation,I started working to build the application interface,and complete interface between each jump.After that,it began to design and implementation.Automobi

8、le industry after years of development,has generated a lot of brands,each brand there are a variety of models.I have to do the work is in the collection and understanding on the basis of this information,in their own words,their own ideas to demonstrate these ideas and information,and add something

9、new.Through their own efforts,to create a distinctive and unique applications.In recent years,with the popularity of smart phones,there have been many applications on the mobile phone operating system.At the same time,along with Apples mobile phone to enter the Chinese market,the appropriate technol

10、ogy is increasingly popular iOS,while Apples application for the development of language-Object-C,in todays society has become the most popular development languages,and maintained a strong upward trend.So,you can develop a system that runs on iOS car quotes and information-type applications is very

11、 meaningful.The software interface is beautiful,simple operation,to achieve the application home to get data,display data,and other functions,with the general application has the function,the operation is more efficient,with a strong practical.In this paper,mainly on the development process in some

12、detail,the problems encountered,the solution as well as some of his insights.Key word iOS MVC design pattern Objective-C Xcode development tools目錄第1章 緒論11.1 選題背景及意義11.2課題的研究現(xiàn)狀11.3研究內(nèi)容1第2章 系統(tǒng)開發(fā)的相關(guān)技術(shù)22.1 iOS系統(tǒng)簡介22.2 C語言技術(shù)22.3 Objective-C語言技術(shù)22.4 Xcode開發(fā)工具22.5 Photoshop CS632.6 JavaScript語言32.7 MVC設(shè)計(jì)模式

13、42.8 小結(jié)6第3章 項(xiàng)目需求分析73.1可行性分析73.2需求分析7第4章 項(xiàng)目的詳細(xì)實(shí)現(xiàn)84.1 項(xiàng)目簡介84.2 引導(dǎo)頁設(shè)計(jì)84.3 品牌大全設(shè)計(jì)94.4 熱門車型設(shè)計(jì)144.5 新聞資訊設(shè)計(jì)164.6 行業(yè)前景設(shè)計(jì)174.7 車界評價(jià)設(shè)計(jì)184.8 夜間(白天)模式194.9 關(guān)于應(yīng)用20第5章 項(xiàng)目測試215.1測試的重要性215.2測試的目的215.3 測試的原則215.4測試的結(jié)果22第6章 總結(jié)226.1 項(xiàng)目開發(fā)中遇到的問題226.1.1 數(shù)據(jù)解析問題226.1.2 界面設(shè)計(jì)問題226.1.3 界面?zhèn)髦祮栴}236.1.4 Xcode報(bào)錯(cuò)信息236.2 自我總結(jié)和感觸236.

14、3 項(xiàng)目的不足246.4 項(xiàng)目的展望24參考文獻(xiàn)24致謝25第1章 緒論1.1 選題背景及意義選題背景隨著社會的發(fā)展,時(shí)代的進(jìn)步。人們對于信息的需求越來越高。而對浩瀚的信息海洋,我們難免會遺漏一些對自己來說很重要的信息。于是本人針對用戶需求而開發(fā)一款汽車報(bào)價(jià)及資訊類的手機(jī)客戶端。方便愛車人士或有購車意向的人查閱汽車報(bào)價(jià)及汽車行業(yè)的最新情況和資訊。而隨著智能手機(jī)的大眾化,越來越多的人使用智能手機(jī),相對的對于手機(jī)軟件的需求也越來越多。當(dāng)今時(shí)代手機(jī)不再只是用來打電話、發(fā)短信的工具,反而對手機(jī)的娛樂功能要求也越來越高。手機(jī)客戶端也成為了人們的主要獲取信息途徑之一。目前中國汽車行業(yè)已經(jīng)具備了相當(dāng)?shù)囊?guī)模,

15、并在國際市場上有一定的競爭力。蘋果手機(jī)作為當(dāng)今中國智能手機(jī)市場上不可或缺的一個(gè)品牌,基于iOS的手機(jī)軟件需求量也就相應(yīng)的越來越強(qiáng)。選題意義通過手機(jī)客戶端來收集信息已經(jīng)成為大多數(shù)汽車愛好者或準(zhǔn)備購車的人們每天要干的事情了。手機(jī)操作系統(tǒng)有很多,而蘋果系統(tǒng)的軟件具有的特點(diǎn)就是美觀、簡潔、易操作。根據(jù)這些信息,設(shè)計(jì)一款小巧的基于iOS的以汽車報(bào)價(jià)及資訊為主的客戶端會很容易得到用戶的青睞。本人從去年開始接觸iOS,在學(xué)習(xí)了幾個(gè)月后,對iOS開發(fā)有了一些理解,所以對于這次的畢業(yè)設(shè)計(jì),我選擇了基于iOS系統(tǒng)開發(fā)一款產(chǎn)品。希望通過這次畢業(yè)設(shè)計(jì)來進(jìn)一步鞏固自己的iOS開發(fā)水平。使自己在以后的社會競爭中更加具有優(yōu)

16、勢。1.2課題的研究現(xiàn)狀世界在發(fā)展,社會在進(jìn)步,在信息化時(shí)代的今天,人們對于手機(jī)有了進(jìn)一步的了解與應(yīng)用。隨著科技的發(fā)展,智能手機(jī)的出現(xiàn)改變了我們一直以來對手機(jī)只是用于打電話和發(fā)短信的觀點(diǎn)。在路上、車上,我們總能看見有人拿著手機(jī)來玩游戲,看資訊,看電影,這一切都在改變我們的日常生活。也正是由于這些變化,移動(dòng)互聯(lián)網(wǎng)已經(jīng)逐漸成為了互聯(lián)網(wǎng)這個(gè)行業(yè)的重要組成部分。特別是蘋果,占據(jù)了整個(gè)智能手機(jī)領(lǐng)域的很大部分利潤。1.3研究內(nèi)容隨著社會的進(jìn)步發(fā)展,iOS系統(tǒng)的影響力逐漸增強(qiáng),iOS系統(tǒng)已成為全球最受歡迎的系統(tǒng)?,F(xiàn)在人們的物質(zhì)生活越來越豐富,但是人們的生活壓力也越來越大,所以在工作閑暇之余,看看車況,了解一

17、下汽車狀況,也不失為一種調(diào)節(jié)情緒,放松思考的機(jī)會。近年來,汽車產(chǎn)業(yè)得到了巨大的發(fā)展。而且隨著手機(jī)的發(fā)展,有關(guān)汽車的信息已經(jīng)擴(kuò)展到了手機(jī)上,這樣大家就有了更多休閑娛樂的機(jī)會。鑒于此本課題研究并實(shí)現(xiàn)一款簡潔的、擁有必備功能的、高速度的一款汽車報(bào)價(jià)及資訊類應(yīng)用軟件。在人們的日常生活中,愛車人士或者有購車意向的人們可以通過這款應(yīng)用隨時(shí)隨地了解汽車的價(jià)格變動(dòng)以及汽車行業(yè)的最新資訊,幫助人們更快、更好的購得愛車。第2章 系統(tǒng)開發(fā)的相關(guān)技術(shù)2.1 iOS系統(tǒng)簡介iOS是由蘋果公司開發(fā)的手持設(shè)備操作系統(tǒng)。蘋果公司最早于2007年1月9日的Macworld大會上公布這個(gè)系統(tǒng),最初是設(shè)計(jì)給iPhone使用的,后來

18、陸續(xù)套用到iPod touch、iPad以及Apple TV等蘋果產(chǎn)品上。iOS與蘋果的Mac OS X操作系統(tǒng)一樣,它也是以Darwin為基礎(chǔ)的,因此同樣屬于類Unix的商業(yè)操作系統(tǒng)。2.2 C語言技術(shù)C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。二十世紀(jì)八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國國家標(biāo)準(zhǔn)局為C語言訂定了一套完整的國際標(biāo)準(zhǔn)語法,稱為ANSIC,作為C語言的標(biāo)準(zhǔn)。二十世紀(jì)八十年代至今的有關(guān)程序開發(fā)工具,一般都支持符合ANSIC的語法。2.3 O

19、bjective-C語言技術(shù)Objective-C,通常寫作ObjC和較少用的Objective C或Obj-C,是擴(kuò)充C的面向?qū)ο缶幊陶Z言。它主要使用于Mac OS X和GNUstep這兩個(gè)使用OpenStep標(biāo)準(zhǔn)的系統(tǒng),而在NeXTSTEP和OpenStep中它更是基本語言。Objective-C可以在GCC以及Clang運(yùn)作的系統(tǒng)上編寫和編譯,因?yàn)镚CC與Clang含Objective-C的編譯器。1980年代初布萊德確斯(Brad Cox)在其公司Stepstone發(fā)明Objective-C。他對軟件設(shè)計(jì)和編程里的真實(shí)可用度問題十分關(guān)心。2.4 Xcode開發(fā)工具Xcode前身是繼承自

20、NeXT的Project Builder。The Xcode suite 包含有GNU Compiler Collection自由軟件(GCC、apple-darwin9-gcc-4.0.1 以及 apple-darwin9-gcc-4.2.1, 默認(rèn)的是第一個(gè)),并支持 C語言、C+、Fortran、Objective-C、Objective-C+、Java、AppleScript、Python以及Ruby,還提供Cocoa、Carbon以及Java等編程模式。協(xié)力廠商更提供了 GNU Pascal,F(xiàn)ree Pascal, Ada, C#, Perl, Haskell 和 D語言。Xcod

21、e套件使用 GDB作為其后臺調(diào)試工具。2.5 Photoshop CS6Photoshop是Adobe公司旗下最為出名的圖像處理軟件之一,集圖像掃描、編輯修改、圖像制作、廣告創(chuàng)意,圖像輸入與輸出于一體的圖形圖像處理軟件,深受廣大平面設(shè)計(jì)人員和電腦美術(shù)愛好者的喜愛。本應(yīng)用中,需要用Photoshop CS6制作系統(tǒng)的界面、按鈕等平面圖像,以及本應(yīng)用中的所有圖像的設(shè)計(jì)都需要Photoshop CS6來完成。用Photoshop CS6的另外一個(gè)好處就是可以把服飾通過PS內(nèi)部的功能進(jìn)行分割,在應(yīng)用中編程小的控件進(jìn)行一一拖拽,以達(dá)到匹配的效果;當(dāng)這些小控件組合在一起時(shí)就是一張完整的效果圖;這樣既省下了

22、畫整張圖的時(shí)間,也滿足了應(yīng)用中的各個(gè)需求。2.6 JavaScript語言Javascript是一種由Netscape的LiveScript發(fā)展而來的原型化繼承的面向?qū)ο蟮膭?dòng)態(tài)類型的區(qū)分大小寫的客戶端腳本語言,主要目的是為了解決服務(wù)器端語言,比如Perl,遺留的速度問題,為客戶提供更流暢的瀏覽效果。當(dāng)時(shí)服務(wù)端需要對數(shù)據(jù)進(jìn)行驗(yàn)證,由于網(wǎng)絡(luò)速度相當(dāng)緩慢,只有28.8kbps,驗(yàn)證步驟浪費(fèi)的時(shí)間太多。于是Netscape的瀏覽器Navigator加入了Javascript,提供了數(shù)據(jù)驗(yàn)證的基本功能。2.7 MVC設(shè)計(jì)模式MVC全名是Model View Controller,是模型(model)視圖

23、(view)控制器(controller)的縮寫,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯。MVC被獨(dú)特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化-傳播機(jī)制。說到iOS中的MVC不得

24、不提2011秋季斯坦福課程的老頭,他的iPhone開發(fā)公開課是所有描述iOS中MVC模式最為準(zhǔn)確并且最為淺顯易懂的。MVC這個(gè)模式其實(shí)應(yīng)該叫做MCV也許會更準(zhǔn)確一點(diǎn),用控制器把model與view隔開,也就是model與view互相不知道對方的存在,沒有任何瓜葛。下面這張圖摘自斯坦福公開課的課件:圖中有幾條線把這三部分劃分開,有黃線,虛線和白色的實(shí)線。我們把它們想象成路標(biāo)。可以看到,在Model和View之間有兩條黃線,它意味著Model和View二者之間不能穿越這條黃線,任何一個(gè)方向都不行,即Model和View完全分離。在圖的上部可以看到白色的虛線,它意味著只要是安全的,可以自由的穿越它。

25、白色的實(shí)線它代表可以穿越,但有條件。首先來看C和M之間的綠色箭頭,這箭頭的方向就代表著“發(fā)起對話”的方向,也就是說發(fā)起對話的是C,而做出回答的是M。C可以問M各種各樣的問題,但M只是回答C的問題或要求,它不可以主動(dòng)的向C要求什么。虛線可以暢通無阻,所以C知道M的所有的事情,如果用代碼來說明這件事情,就是說C可以導(dǎo)入M的頭文件或是M的接口(API)。因?yàn)镃可以通過M的API,所以它就可以向M提出各種要求了。再來看看另外的一個(gè)綠色箭頭,它是在C和V之間,和前一個(gè)綠色箭頭的意義一樣,它代表C可以直接地向V進(jìn)行交流。C要把V放到屏幕上,并設(shè)置V的屬性,告訴它們什么時(shí)候從屏幕上消失,把它們分成組等。如果

26、C不能自由的向V發(fā)號施令的話,程序的顯示將會很困難。所以C可以毫無限制地向V說話。在這個(gè)箭頭上還有outlet(輸出口),outlet可以看作是從C指向V的指針,它在C中被定義。outlet給我們提供了很大的方便,它使我們在C的內(nèi)部就可以輕松準(zhǔn)確地向V施令。C可以擁有很多的outlet,可以不止一個(gè),這也使它可以更高效的和V進(jìn)行交流。M和V之間完全不可以通過,所以是不允許M和V進(jìn)行交流的。這是因?yàn)椴幌M@三部分之間有過多的交流,假如V在顯示時(shí)出現(xiàn)了問題,比如有一個(gè)圖形沒有顯示出來,就要去查找錯(cuò)誤,因?yàn)镃可以和V交流,M也可以和V交流的話,就要去檢查兩個(gè)部分。相反的,只有C可以和V交流的話,再出

27、錯(cuò)時(shí)就只需要去C那里查找原因,這樣查找錯(cuò)誤就很簡單了。所以不允許M和V之間有直接的聯(lián)系,這也是在它們兩之間有兩根黃線的原因。V對C的交流有三種不同的方式。第一種稱為目標(biāo)操作(target-action)。C會在自己的內(nèi)部“懸掛”一個(gè)目標(biāo)(target),如圖中的紅白相間的靶子,它還會分發(fā)一個(gè)操作(action,如圖中的黃色箭頭)給將要和它交流的視圖對象(可能是屏幕上的一個(gè)按鈕),當(dāng)按鈕被按時(shí),action就會被發(fā)送給與之對應(yīng)的target,這樣V就可以和C交流了。但是在這種情況下,V只是知道發(fā)送action給對應(yīng)的target,它并不知道C中的類,也不知道它到底發(fā)送了什么。第二種方式叫做委托(

28、delegate)。有時(shí)候,V需要和C進(jìn)行同步,用戶交互不僅僅是點(diǎn)擊按鈕,劃動(dòng)滑塊,還有很多種形式。圖中的delegate黃色箭頭,箭頭上又分出了四個(gè)小箭頭:should,did,will,還有一個(gè)沒標(biāo)注的。絕大部分的delegate信息都是should,will,did這三種形式。和英文意思相對應(yīng)should代表視圖對象將詢問C中的某個(gè)對象“我應(yīng)該這么做嗎?”C把自己設(shè)置為V的委托(delegate),它讓V知道:如果V想知道更多的關(guān)于將如何顯示的信息的話,就向C發(fā)送delegate信息。通過接受V發(fā)過來的delegate信息,C就會做出相應(yīng)的協(xié)調(diào)和處理。每個(gè)V只能有一個(gè)delegate。第

29、三種方式叫數(shù)據(jù)源(datasource),V不能擁有它所要顯示的數(shù)據(jù)。V希望別人幫助它管理將要顯示的數(shù)據(jù),當(dāng)它需要數(shù)據(jù)時(shí),它就會請求別人的幫助,把需要的數(shù)據(jù)給它。再者,iPhone的屏幕很小,它不能顯示包含大量信息的視圖。圖中的datasource箭頭和delegate類似,V會發(fā)送count,data信息給C來請求數(shù)據(jù)。M和C之間的白線,這意味著M不可以直接地,沒有限制的對C進(jìn)行交流。但有時(shí)候這個(gè)方向的交流是必要的。當(dāng)M中的一些東西發(fā)生變化時(shí),C需要了解這些變化,通知(Notification)和KVO是解決問題的好方法。當(dāng)M中的某些東西發(fā)生變化時(shí),他們會向C發(fā)出通知“發(fā)生變化”,或者它們會

30、發(fā)出指向變化的指針給C。MVC中的模型、視圖和控制類如圖所示。(1)模型類(2)視圖類(3)控制器類1數(shù)據(jù)結(jié)構(gòu)和關(guān)系2.視圖和控制器的注冊關(guān)系1.顯示形式2.顯示模式控制1.狀態(tài)1.內(nèi)部數(shù)據(jù)和邏輯計(jì)算2.向視圖和控制器通知數(shù)據(jù)變化1.從模型獲得數(shù)據(jù)2.視圖更新操作1.事件控制2.控制視圖更新MVC中的模型、視圖和控制器如果控制器的行為依賴于模型的狀態(tài),則控制器應(yīng)該在變化-傳播機(jī)制中進(jìn)行注冊,并提供一個(gè)更新操作。這樣,可以由模型的變化來改變控制器的行為,如禁止某些操作。MVC的實(shí)現(xiàn),基于MVC的應(yīng)用需要完成以下工作,如圖所示:2.8 小結(jié)與軟件所處理問題的內(nèi)在模型相比較,用戶界面是需要經(jīng)常發(fā)生變

31、化的,采用MVC設(shè)計(jì)模式可以在滿足對界面要求的同時(shí),使軟件的計(jì)算模型獨(dú)立于界面的構(gòu)成。本節(jié)首先介紹了MVC的三個(gè)組成構(gòu)件(模型構(gòu)件、視圖構(gòu)件和控制構(gòu)件),以及實(shí)現(xiàn)基于MVC的應(yīng)用需要完成的工作;接著,對MVC的優(yōu)點(diǎn)及不足之處進(jìn)行了分析;最后介紹了幾種其他類似的結(jié)構(gòu)模式,并對MVC和PAC進(jìn)行了比較。第3章 項(xiàng)目需求分析3.1可行性分析可行性分析也可稱為可行性研究。是在網(wǎng)上調(diào)查的基礎(chǔ)上輔助其它的信息渠道,針對基于iOS的汽車客戶端的開發(fā)是否具備必要性和可能性。對新的汽車客戶端的開發(fā)從技術(shù)、操作、經(jīng)濟(jì)等不同方面進(jìn)行分析研究,來保證投資的失誤,保證應(yīng)用的開發(fā)成功。就目前所學(xué)知識知道可行性分析可以在最

32、短的時(shí)間內(nèi)分析出這款基于iOS的應(yīng)用是否可以達(dá)到預(yù)定的效果。1、經(jīng)濟(jì)可行性分析:這款基于iOS的汽車報(bào)價(jià)類應(yīng)用的開發(fā)是通過蘋果系統(tǒng)的Xcode來進(jìn)行的。自己也可通過專業(yè)的抓接口工具獲取自己想要的資源,并且這個(gè)過程是簡單的,不存在浪費(fèi)人力物力的現(xiàn)象。所以可得出開發(fā)一款基于iOS汽車報(bào)價(jià)類應(yīng)用在經(jīng)濟(jì)方面是可行的。 2、社會可行性分析:開發(fā)這款汽車報(bào)價(jià)類應(yīng)用,本人不以盈利為目的,不會損害到任何人的利益。本人開發(fā)這款汽車報(bào)價(jià)類應(yīng)用符合國家的方針政策,不影響任何組織的利益,沒有宗教方面的宣傳同時(shí)不會影響社會穩(wěn)定。所以可以得出本人開發(fā)基于iOS的汽車報(bào)價(jià)類應(yīng)用在社會方面是可行的。3、技術(shù)可行性分析:開發(fā)基

33、于iOS的汽車報(bào)價(jià)類應(yīng)用運(yùn)用的技術(shù)是Object-C,以及一些iOS開發(fā)的UI設(shè)計(jì),某些類庫的應(yīng)用等等。就技術(shù)方面而言,自己學(xué)習(xí)iOS技術(shù)已經(jīng)有四五個(gè)月的基礎(chǔ)了,而且有過相關(guān)類似的開發(fā)經(jīng)驗(yàn),相對于開發(fā)一款汽車報(bào)價(jià)類軟件而言自己的技術(shù)是完全可以信任的。而自己的Xcode完全可以勝任這次開發(fā)的需求。從而分析得出開發(fā)這款汽車報(bào)價(jià)類應(yīng)用在技術(shù)方面是可行的。所以,綜上所述基于iOS的汽車報(bào)價(jià)類應(yīng)用的開發(fā)是可行的。3.2需求分析再把需求分析進(jìn)行補(bǔ)充,另你做的這個(gè)系統(tǒng)用到數(shù)據(jù)庫了嗎?如果用到請?jiān)谠O(shè)計(jì)章節(jié)中進(jìn)行說明需求分析指的是建立一個(gè)新的應(yīng)用的時(shí)候,就這個(gè)新的應(yīng)用的目的、范圍、定義及功能這些方面所要做的工作

34、。需求分析是完成一個(gè)應(yīng)用必不可少的部分。在進(jìn)行一款項(xiàng)目開發(fā)的過程中,開發(fā)者必須確定客戶的需求,在確定了客戶需求后才能進(jìn)行應(yīng)用的開發(fā)。根據(jù)當(dāng)前社會趨勢,蘋果手機(jī)在國內(nèi)已經(jīng)成為主流手機(jī)之一,單單是iOS方面的汽車類應(yīng)用已經(jīng)具備了相當(dāng)?shù)囊?guī)模。市場上的應(yīng)用品牌繁多,定位不一,基本滿足了各層次消費(fèi)者的需求。而最新的調(diào)查顯示比較大的汽車類應(yīng)用市場,并不是很樂觀。而簡單,直觀的應(yīng)用卻很受年輕人的青睞和歡迎。所以,設(shè)計(jì)的重點(diǎn)還是在于簡單的外形和其吸引人的性能,新型的汽車應(yīng)用要有其它的附加功能,可以更好的吸引用戶。另加一章:項(xiàng)目總體設(shè)計(jì)(或功能設(shè)計(jì))第4章 項(xiàng)目的詳細(xì)實(shí)現(xiàn)每個(gè)功能模塊的實(shí)現(xiàn)只把關(guān)鍵代碼給了就行4

35、.1 項(xiàng)目簡介用戶在首次使用應(yīng)用時(shí)會出現(xiàn)一個(gè)引導(dǎo)頁,即可以指導(dǎo)用戶如何正確使用該應(yīng)用以及對應(yīng)用的一個(gè)簡單介紹,也可以讓用戶一眼能看到該軟件的亮點(diǎn);在以后版本升級更新后,這個(gè)引導(dǎo)頁也是必不可少的,能夠讓用戶一目了然的看到新版本增加的功能。當(dāng)再次啟動(dòng)應(yīng)用時(shí)引導(dǎo)頁則不會再次出現(xiàn)。引導(dǎo)頁過后,首先為用戶展示的是品牌大全頁面,該模塊主要包括兩部分(頂部的視圖是一個(gè)collectionView,其被添加在tableView的header上,可左右滑動(dòng)、上下滑動(dòng)的視圖是一個(gè)tableView)。此頁面有序展示了世界各國汽車品牌以及國家名稱。熱門車型功能模塊主要為用戶展示的是熱門、SUV、豪華、其他等車型,點(diǎn)

36、擊相應(yīng)的車型可進(jìn)入下一頁面對相應(yīng)車型的信息做更為詳細(xì)的介紹、說明以及展示更多相關(guān)信息。新聞資訊等模塊展示了一些汽車方面的最新資訊,用戶可查看了解更多有關(guān)汽車方面的信息。用戶設(shè)置模塊為用戶提供了夜間模式,當(dāng)用戶在夜間查看應(yīng)用的時(shí)候可切換至夜間模式查閱,關(guān)于應(yīng)用頁面是對應(yīng)用的版本等信息做的一個(gè)簡單介紹。4.2 引導(dǎo)頁設(shè)計(jì) 關(guān)鍵代碼:/創(chuàng)建 NSUserDefualts 對象(單例)NSUserDefaults *userDefualt = NSUserDefaults standardUserDefaults;if (!userDefualt boolForKey:first) /布局 UIScr

37、ollView /布局 UIImageView /布局pageControluserDefualt setBool:YES forKey:first;/立即執(zhí)行userDefualt synchronize;用戶引導(dǎo)頁是用戶首次使用此應(yīng)用時(shí)會出現(xiàn)的一個(gè)引導(dǎo)頁面,即用戶正確使用該應(yīng)用的一個(gè)引導(dǎo)。以上這段代碼是有關(guān)用戶引導(dǎo)的一段核心代碼,首先通過NSUserDefaults創(chuàng)建一個(gè)簡易數(shù)據(jù)庫,NSUserDefaults standardUserDefaults;然后系統(tǒng)做判斷,當(dāng)應(yīng)用程序師第一次啟動(dòng),也就是以下代碼!userDefualt boolForKey:first的判斷為真,則開始對用戶

38、引導(dǎo)開始布局,并在程序啟動(dòng)時(shí)為用戶展示,否則,系統(tǒng)就會判斷不是第一次啟動(dòng)應(yīng)用程序,那么程序會立即進(jìn)入應(yīng)用的主視圖,用戶開始體驗(yàn)。4.3 品牌大全設(shè)計(jì) 關(guān)鍵代碼:- (void)viewDidLoad super viewDidLoad; self.tableView.backgroundColor = UIColor whiteColor; self.tableView.bounces = NO; self.tableView registerClass:AllCarsTableViewCell class forCellReuseIdentifier:aa; self.tableView.s

39、eparatorStyle = UITableViewCellSeparatorStyleNone; /請求數(shù)據(jù) RequestData alloc initWithURLString: parameterDic:nil delegate:self; 某一品牌車型展示關(guān)鍵代碼:- (void)viewDidLoad super viewDidLoad; self customizeNavigationBar; self.navigationItem.title = self.allC; self.tableView.backgroundColor = UIColor white

40、Color; self.tableView.bounces = NO; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; self myCircle;self.tableView registerClass:HotCarsTableViewCell class forCellReuseIdentifier:aa;/數(shù)據(jù)請求 RequestData alloc initWithURLString: parameterDic:brandId:NSString stringWithFormat:%,_allCars.

41、id,type:0 delegate:self;以上代碼展示某一品牌下的汽車車型方面的相關(guān)信息,并在其header上設(shè)置固定圖片添加輕拍手勢push到下一頁面對品牌的介紹。某一車型品牌介紹關(guān)鍵代碼:- (void)viewDidLoad super viewDidLoad; self.view.backgroundColor = UIColor whiteColor; self.navigationItem.title = NSString stringWithFormat:%的故事,self.allC; /數(shù)據(jù)請求 RequestData alloc initWithURLS

42、tring: parameterDic:brandId:NSString stringWithFormat:%,self.allCars.id delegate:self; 以上代碼實(shí)現(xiàn)webView中圖文混合的情況,使之能夠適應(yīng)屏幕大小顯示圖片和文字。 某一車型相關(guān)信息關(guān)鍵代碼:- (void)viewDidLoad super viewDidLoad; self.view.backgroundColor = UIColor whiteColor; self.tableView.bounces = NO; self.tableView registerClass:CarsIntroduceT

43、ableViewCell class forCellReuseIdentifier:aa; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; /通過接口數(shù)據(jù)請求 RequestData alloc initWithURLString: parameterDic:serialId:NSString stringWithFormat:%,self.hotCars.id delegate:self;以上代碼又更進(jìn)一步展示某一具體車型的相關(guān)信息。銷售信息頁面關(guān)鍵代碼:- (void)viewDidLoad super

44、viewDidLoad; self.view.backgroundColor = UIColor whiteColor; self.navigationItem.title = 銷售信息; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; self.tableView registerClass:CarMarketTableViewCell class forCellReuseIdentifier:aa; /數(shù)據(jù)請求 RequestData alloc initWithURLString: parameterD

45、ic:cartypeId:NSString stringWithFormat:%,self.hotCars.cartypeId,limit:10,orderField:2,orderType:1 delegate:self; 以上代碼主要展示某一車型在國內(nèi)市場的銷售地點(diǎn)、銷售價(jià)格以及銷售熱線等信息。4.4 熱門車型設(shè)計(jì)熱門車型模塊關(guān)鍵代碼:/初始化控制器并添加到UIScrollViewController上- (void)viewDidLoad super viewDidLoad; self.automaticallyAdjustsScrollViewInsets = NO; /熱門車 Hot

46、CarsTableViewController *hotCarsVC = HotCarsTableViewController alloc init; hotCarsVC.view.frame = CGRectMake(0, 64, self.view.bounds.size.width, self.view.bounds.size.height-64-30); self addChildViewController:hotCarsVC; /SUV車 SUVCarsTableViewController *SUVCarsVC = SUVCarsTableViewController alloc

47、 init; SUVCarsVC.view.frame = CGRectMake(self.view.bounds.size.width, 64, self.view.bounds.size.width, self.view.bounds.size.height-64-30); self addChildViewController:SUVCarsVC; /豪華車 LuxuryCarsTableViewController *luxuryCarsVC = LuxuryCarsTableViewController alloc init; luxuryCarsVC.view.frame = CG

48、RectMake(self.view.bounds.size.width*2, 64, self.view.bounds.size.width, self.view.bounds.size.height-64-30); self addChildViewController:luxuryCarsVC; /其他車 OtherCarsTableViewController *otherCarsVC = OtherCarsTableViewController alloc init; otherCarsVC.view.frame = CGRectMake(self.view.bounds.size.

49、width*3, 64, self.view.bounds.size.width, self.view.bounds.size.height-64-30); self addChildViewController:otherCarsVC; 以上代碼是在viewDidLoad方法中初始化四個(gè)控制器,將控制器的視圖展示在self.scrollV上,并對其大小、frame等進(jìn)行設(shè)置,使其展示在適當(dāng)?shù)奈恢谩?熱門頁面關(guān)鍵代碼:- (void)viewDidLoad super viewDidLoad; self.tableView.backgroundColor = UIColor whiteColo

50、r; self.tableView.bounces = NO; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; self myCircle; self.tableView registerClass:HotCarsTableViewCell class forCellReuseIdentifier:aa; /請求數(shù)據(jù) RequestData alloc initWithURLString: parameterDic:type:0 delegate:self;熱門車型模塊展示了熱門車型的一些信息,主要分為四個(gè)頁

51、面,分別是熱門、SUV、豪華、其他等類型。四個(gè)UITableViewController放在一個(gè)UIScrollView上面,設(shè)置UIScrollView的contentOffset使其恰好能夠顯示四個(gè)控制器的寬度。4.5 新聞資訊設(shè)計(jì) 關(guān)鍵代碼:- (void)viewDidLoad super viewDidLoad; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; self.tableView.frame = CGRectMake(0, 0, self.tableView.bounds.size.wid

52、th, self.tableView.bounds.size.height); /注冊cell self.tableView registerClass:CarNewsTableViewCell class forCellReuseIdentifier:aa; /請求數(shù)據(jù) RequestData alloc initWithURLString: parameterDic:hasScrollNews:true,currentPage:1,rowCountPerPage:18,act:newsList,subsiteCode:20140719000001,news_column:ff8080814780be9701478a5058931dfa delegate:self; 4.6 行業(yè)前景設(shè)計(jì) 行業(yè)前景頁面關(guān)鍵代碼:- (void)viewDidLoad super viewDidLoad; self.tableView registerClass:CarNewsTableViewCell class forCellReuseIdentifier:aa; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; self myCircle; /數(shù)據(jù)請求

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論