軟件工程畢業(yè)論文-基于ios系統(tǒng)的娛樂資訊網(wǎng)的開發(fā)與實現(xiàn)_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p>  基于IOS系統(tǒng)的娛樂資訊網(wǎng)的開發(fā)與實現(xiàn)</p><p><b>  摘 要</b></p><p>  隨著時代的發(fā)展,社會越來越需要高效,人們物質(zhì)生活

2、得到滿足,而對于精神上的需求遠遠不能滿足人們的需要。娛樂新聞則是根據(jù)現(xiàn)代人的需要生產(chǎn)出來供一部分人消費的信息產(chǎn)品。而娛樂新聞大行其道與中國的各種文化,社會因素存在千絲萬縷的聯(lián)系。</p><p>  本文介紹了娛樂資訊網(wǎng)的開發(fā)過程。論文遵循軟件工程的方法,詳盡論述了從需求分析、系統(tǒng)分析、概要設(shè)計、詳細設(shè)計、以及測試與調(diào)試的整個開發(fā)過程,總結(jié)了開發(fā)過程中的經(jīng)驗及本系統(tǒng)今后的改進方向。</p><

3、p>  本系統(tǒng)開發(fā)成功后可以實現(xiàn)對最新娛樂新聞的查看和關(guān)注,提供對電影、電視劇、音樂、綜藝等方面的了解。Xcode 5.0開發(fā)工具,采用成熟的軟件研制技術(shù),后臺數(shù)據(jù)庫采用Sqlite3。</p><p>  關(guān)鍵詞 : 娛樂資訊、 功能、 Xcode 5.0 、 Sqlite3 </p><p><b>  Abstract</b></p>

4、<p>  隨著時代的發(fā)展,社會越來越需要高效,人們物質(zhì)生活得到滿足,而對于精神上的需求遠遠不能滿足人們的需要。娛樂新聞則是根據(jù)現(xiàn)代人的需要生產(chǎn)出來供一部分人消費的信息產(chǎn)品。而娛樂新聞大行其道與中國的各種文化,社會因素存在千絲萬縷的聯(lián)系。</p><p>  With the development of the times, the society needs more and more effici

5、ent, the people material life satisfaction, but for the spiritual needs are far unable to meet the needs of people. Entertainment news is according to the needs of modern people is produced for a part of the information

6、product consumption. The popular entertainment news culture and Chinese, social factors have all kinds of connections with contact.</p><p>  本文介紹了娛樂資訊網(wǎng)的開發(fā)過程。論文遵循軟件工程的方法,詳盡論述了從需求分析、系統(tǒng)分析、概要設(shè)計、詳細設(shè)計、以及測試與調(diào)試的整個開發(fā)

7、過程,總結(jié)了開發(fā)過程中的經(jīng)驗及本系統(tǒng)今后的改進方向。</p><p>  This paper introduces the development process of the entertainment information network. Methods according to the software engineering, discussed in detail from the demand

8、analysis, system analysis, outline design, detailed design, and test and debug the entire development process, summed up the improvement direction of the experience of the development process of the system and future.<

9、;/p><p>  本系統(tǒng)開發(fā)成功后可以實現(xiàn)對最新娛樂新聞的查看和關(guān)注,提供對電影、電視劇、音樂、綜藝等方面的了解。Xcode 5.0開發(fā)工具,采用成熟的軟件研制技術(shù),后臺數(shù)據(jù)庫采用Sqlite3。</p><p>  After the success of the system development can be achieved on the latest entertainment

10、news view and attention, on film, TV, music, entertainment and other aspects of the understanding. Xcode 5 development tools, the use of mature software development technology, back-end database using Sqlite3.</p>

11、<p>  關(guān)鍵詞 : 娛樂資訊、 功能、 Xcode 5.0 、 Sqlite3</p><p>  Keywords: entertainment information, function, Xcode 5, Sqlite3</p><p><b>  目 錄</b></p><p><b>  1 緒 論1

12、</b></p><p>  1.1娛樂資訊系統(tǒng)的意義1</p><p>  1.2娛樂資訊系統(tǒng)的研究現(xiàn)狀1</p><p>  2 相關(guān)技術(shù)的選用與介紹1</p><p>  2.1 IOS開發(fā)技術(shù)1</p><p>  2.2 Xcode開發(fā)工具介紹1</p><p&g

13、t;  2.3 面向?qū)ο罄碚摰慕榻B3</p><p>  2.4 IOS網(wǎng)絡(luò)通信技術(shù)4</p><p>  3系統(tǒng)分析與總體設(shè)計4</p><p>  3.1 系統(tǒng)功能描述4</p><p>  3.2 系統(tǒng)功能模塊劃分4</p><p>  3.3 系統(tǒng)流程分析5</p><p&

14、gt;  3.3.1 推薦模塊流程分析5</p><p>  3.3.2 資訊流程分析6</p><p>  3.3.3 圖片流程分析7</p><p>  4 系統(tǒng)界面實現(xiàn)7</p><p>  4.1 設(shè)計界面7</p><p>  4.2 一級界面展示8</p><p>  4

15、.3 二級界面及二級界面放大展示9</p><p>  4.4 瀑布流界面展示11</p><p>  4.5 圖片界面及圖片預(yù)覽展示12</p><p>  4.6 下載界面展示13</p><p>  5 程序的設(shè)計模式和核心代碼實現(xiàn)14</p><p>  5.1 IOS開發(fā)中的MVC模式14<

16、;/p><p>  5.2 IOS開發(fā)中的代理模式15</p><p>  5.3 IOS開發(fā)中的觀察者模式15</p><p>  5.4 ASIHttpRequest 請求數(shù)據(jù)15</p><p>  5.5 抽屜式界面的實現(xiàn)代碼16</p><p>  5.6 列表視圖的實現(xiàn)主要代碼17&l

17、t;/p><p><b>  6 結(jié)束語18</b></p><p>  參 考 文 獻19</p><p><b>  致謝20</b></p><p><b>  1 緒 論</b></p><p>  1.1娛樂資訊系統(tǒng)的意義</p&g

18、t;<p>  隨著人們生活水平的提高,人們對于精神上的需求要求也越來越高。人們對于互聯(lián)網(wǎng)的認識逐漸加深,如今存在很多互聯(lián)網(wǎng)網(wǎng)站可供人們查閱信息。娛樂資訊系統(tǒng)應(yīng)運而生,娛樂資訊系統(tǒng)就是其中一個關(guān)于電影演員、電影、電視節(jié)目、電影明星以及各種綜藝信息和音樂的大型資料庫。</p><p>  娛樂新聞是根據(jù)現(xiàn)代人的某種精神需要而生產(chǎn)出來供一部分人消費的信息產(chǎn)品。新聞的娛樂化在內(nèi)容上偏重于軟新聞,減少嚴肅新

19、聞的比例,從嚴肅的政治、經(jīng)濟變動中挖掘其娛樂價值。在表現(xiàn)形式上,強調(diào)故事性、情節(jié)性、適度加入人情味因素,強化事件的戲劇懸念或煽情、刺激的方面,走新聞故事化、新聞文學(xué)化道路。與社會文化緊密相連,娛樂新聞生存的土壤也是它生存的土壤,并且在這個土壤里扎根更深。娛樂新聞包含在新聞的娛樂化大潮中,并且是主力軍。</p><p>  1.2娛樂資訊系統(tǒng)的研究現(xiàn)狀</p><p>  娛樂新聞從廣義上說

20、,就是能使人輕松、快樂,供人休閑、消遣的新聞報道。簡單地說,娛樂新聞就是所有能夠使人輕松、供人消遣的新聞。而狹義的娛樂新聞,一般是指,關(guān)于影、視、歌等大眾文化的娛樂作品或明星人物的、新近發(fā)生或正在發(fā)生的、對公眾具有娛樂意義的事實的報道。在這里,娛樂新聞報道涉及的領(lǐng)域?qū)儆趭蕵窐I(yè)的基本構(gòu)成內(nèi)容。因此,從狹義上說,娛樂新聞就是報道娛樂業(yè)的新聞。</p><p>  新中國成立之后的幾十年中,沒有將“娛樂新聞”作為新聞中

21、的一個類別。媒體對文化生活方面的報道基本上都和政治掛鉤,以政治的角度來解讀,所謂“唱一首革命歌曲就等于上一堂政治課”。隨著改革開放的發(fā)展,市場經(jīng)濟的推動,同時也在外來文化的不斷影響下,“娛樂新聞”在20世紀(jì)80年代后逐漸出現(xiàn)在報紙的文化新聞中。到90年代,娛樂新聞逐漸從文化新聞中脫離,并不斷發(fā)展,最終形成了涵蓋文化新聞的,與政治、社會、經(jīng)濟、體育等新聞種類地位相等的新聞新類別。到21世紀(jì)初,娛樂成為人們生活中不可或缺的一部分,娛樂新聞也

22、隨之迅速發(fā)展。與此相應(yīng),學(xué)術(shù)界關(guān)于娛樂新聞的研究也迅速起步并取得了長足發(fā)展。</p><p>  本娛樂資訊系統(tǒng)基于以上現(xiàn)狀,研究開發(fā)了關(guān)于娛樂新聞的詳細內(nèi)容,提供關(guān)于電影、電視劇、綜藝、音樂以及最新新聞的信息。讓你在第一時間瀏覽各種娛樂新聞。</p><p>  2 相關(guān)技術(shù)的選用與介紹</p><p>  2.1 IOS開發(fā)技術(shù)</p><

23、p>  IOS是iPhone,iPod touch以及iPad等設(shè)備的核心操作系統(tǒng)。IOS平臺使用了構(gòu)建Mac OS X時積累的知識,IOS SDK提供了創(chuàng)建IOS應(yīng)用程序所需要的環(huán)境和工具,利用IOS SDK開發(fā)應(yīng)用時所用的編程語言是Objective-C。IOS平臺開發(fā)工具和開發(fā)技術(shù)源于Mac OSX,都是以UNIX為基礎(chǔ)。IOS應(yīng)用程序開發(fā)依賴于iPhone軟件開發(fā)包(SDK),其中SDK繼承與Xcode中。</p&g

24、t;<p>  從整體上看,IOS扮演底層硬件和應(yīng)用程序的中介。創(chuàng)建的應(yīng)用程序不能直接訪問硬件,而需要和系統(tǒng)接口進行交互。IOS實現(xiàn)可以看作多個層的集合,底層為所有程序提供基礎(chǔ)服務(wù),高層則包含一些復(fù)雜的服務(wù)和技術(shù)。</p><p>  Cocoa touch層提供了基本的系統(tǒng)行為支持,當(dāng)需要實現(xiàn)更為復(fù)雜的行為和界面時,才考慮向下層探尋技術(shù)支持。</p><p>  UIKit

25、框架:提供程序運行必須得關(guān)鍵對象,使APP能夠捕獲用戶輸入和在屏幕上顯示內(nèi)容。</p><p>  MapKit框架:IOS3.0 引入該框架,可被嵌入到應(yīng)用程序的地圖界面,該框架包含一個可以滾動的地圖視圖。</p><p>  Address Book UI框架:IOS3.0引入該框架,用于撰寫電子郵件,并將其放入到用戶的發(fā)件箱排隊等候發(fā)送。</p><p>  

26、Message UI框架: 顯示創(chuàng)建或者編輯聯(lián)系人的標(biāo)準(zhǔn)系統(tǒng)界面。</p><p>  Media層包含圖形、音頻、視頻等技術(shù)。</p><p>  AV Foundation框架:用于播放和編輯復(fù)雜的音頻和視頻。</p><p>  Core Image框架:包含高級圖像和視頻處理功能。如人臉識別和圖像過濾功能。</p><p>  Cor

27、e Graphics框架:包含2D繪畫和合成功能。</p><p>  Media Player框架: 提供典型的屏幕控件用于播放電影。</p><p>  Quartz Core框架:包含Core Animation 接口。用于實現(xiàn)復(fù)雜的動畫和視覺效果。</p><p>  Core service層用于訪問較多低級的操作系統(tǒng)服務(wù),如文件存取,聯(lián)網(wǎng)和常見的數(shù)據(jù)對

28、象類型。</p><p>  Foundation 框架: 為Core Foundation框架的許多功能提供Objective-C封裝。</p><p>  Core Foundation 框架:一組C語言的接口,為IOS應(yīng)用程序提供基本數(shù)據(jù)管理和服務(wù)功能。</p><p>  Core Location框架:用于定位設(shè)備當(dāng)前經(jīng)緯度。</p><

29、;p>  System Configuration:用于確定設(shè)備網(wǎng)絡(luò)配置的當(dāng)前狀態(tài)。</p><p><b>  IOS開發(fā)限制介紹</b></p><p> ?。?)平臺間差異:iPhone OS 設(shè)備和臺式機或筆記本電腦的開發(fā)的不同,也和桌面應(yīng)用程序不同,需要意識到終端開發(fā)的特殊性。</p><p> ?。?)屏幕大小的限制:由于iP

30、hone OS 設(shè)備具有高分辨率的小型屏幕,在iPhone5之前設(shè)備都是3.5in,iPhone5以及iPhone5c,iPhone5s都是4.0in,在設(shè)計應(yīng)用時需要注意不要放置非必要的元素。</p><p>  (3)內(nèi)存限制:IOS的內(nèi)存非常有限,避免分配超出設(shè)備的可用內(nèi)存,不然應(yīng)用程序?qū)⒔K止。當(dāng)發(fā)生內(nèi)存過低時,IOS系統(tǒng)將發(fā)出警告,需要進行及時清理內(nèi)存。同時需要注意避免內(nèi)存泄露。</p>&

31、lt;p> ?。?)窗口顯示限制:在IOS環(huán)境上,用戶每次只能看到單個窗口。多個窗口只能順序訪問和查看。</p><p> ?。?)電量限制:iPhone OS設(shè)備是通過電池供電,而高速運轉(zhuǎn)的系統(tǒng),大屏幕,上網(wǎng)或看電子書都會消耗電量。</p><p>  2.2 Xcode開發(fā)工具介紹</p><p>  Xcode: IOS集成開發(fā)環(huán)境,也是編譯器,負責(zé)管

32、理應(yīng)用程序工程。</p><p>  Interface Builder:快速原型開發(fā)工具,可視化的組裝用戶UI接口的工具,集成在Xcode中。</p><p>  Instruments:功能強大的性能調(diào)試工具,以及內(nèi)存分析工具。</p><p>  iPhone Simulator:Mac OS X平臺應(yīng)用程序,它是模擬應(yīng)用程序,但不能完全模擬所有功能。<

33、/p><p>  IOS SDK:ISO軟件開發(fā)工具包。</p><p>  2.3 面向?qū)ο罄碚摰慕榻B</p><p>  從現(xiàn)實世界中客觀存在的事物(即對象)出發(fā)來構(gòu)造軟件系統(tǒng),并在系統(tǒng)構(gòu)造中盡可能運用人類的自然思維方式,強調(diào)直接以問題域(現(xiàn)實世界)中的事物為中心來思考問題,并根據(jù)這些事物的本質(zhì)特點,把它們抽象地表示為系統(tǒng)中的對象,作為系統(tǒng)的基本構(gòu)成單位(而不是用

34、一些與現(xiàn)實世界中的事物相關(guān)比較遠,并且沒有對應(yīng)關(guān)系的其它概念來構(gòu)造系統(tǒng))。這可以使系統(tǒng)直接地映射問題域,保持問題域中事物及其相互關(guān)系的本來面貌。</p><p>  對象是要研究的任何事物。從一本書到一家圖書館,單的整數(shù)到整數(shù)列龐大的數(shù)據(jù)庫、極其復(fù)雜的自動化工廠、航天飛機都可看作對象,它不僅能表示有形的實體,也能表示無形的(抽象的)規(guī)則、計劃或事件。對象由數(shù)據(jù)(描述事物的屬性)和作用于數(shù)據(jù)的操作(體現(xiàn)事物的行為)

35、構(gòu)成一獨立整體。從程序設(shè)計者來看,對象是一個程序模塊,從用戶來看,對象為他們提供所希望的行為。在對內(nèi)的操作通常稱為方法。</p><p>  類是對象的模板。即類是對一組有相同數(shù)據(jù)和相同操作的對象的定義,一個類所包含的方法和數(shù)據(jù)描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實例。類可有其子類,也可有其它類,形成類層次結(jié)構(gòu)。</p><p>  消息是對象之間

36、進行通信的一種規(guī)格說明。一般它由三部分組成:接收消息的對象、消息名及實際變元。</p><p><b>  三大特性:</b></p><p>  封裝性:封裝是一種信息隱藏技術(shù),它體現(xiàn)于類的說明,是對象的重要特性。封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法(函數(shù))封裝為一個整體,以實現(xiàn)獨立性很強的模塊,使得用戶只能看見到對象的外特性(對象能接受哪些消息,具有哪些處理能力),而對象

37、的內(nèi)特性(保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實現(xiàn)加工能力的算法)對用戶是隱蔽的。封裝的目的在于把對象的設(shè)計者和對象者的使用分開,使用者不必知曉行為實現(xiàn)的細節(jié),只須用設(shè)計者提供的消息來訪問該對象。</p><p>  繼承性:“繼承”是面向?qū)ο筌浖夹g(shù)當(dāng)中的一個概念。如果一個類A繼承自另一個類B,就把這個A稱為“B的子類”,而把B稱為“A的父類”。繼承可以使得子類具有父類的各種屬性和方法,而不需要再次編寫相同的代碼。在令子類

38、繼承父類的同時,可以重新定義某些屬性,并重寫某些方法,即覆蓋父類的原有屬性和方法,使其獲得與父類不同的功能。另外,為子類追加新的屬性和方法也是常見的做法。</p><p>  多態(tài)性: 對象根據(jù)所接收的消息而做出動作。同一消息為不同的對象接受時可產(chǎn)生完全不同的行動,這種現(xiàn)象稱為多態(tài)性。利用多態(tài)性用戶可發(fā)送一個通用的消息,而將所有的實現(xiàn)細節(jié)現(xiàn)受到繼承性的支持,利用類繼承的層次關(guān)系,把具有通用功能的協(xié)議存放在類層次中

39、盡可能高的地方,而將實現(xiàn)這一功能的不同方法置于較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應(yīng)。</p><p>  類的多態(tài)性提供類方法的多樣性,多態(tài)性有兩種表示方式:重載和覆蓋。</p><p>  都留給接受消息的對象自行決定,如是,同一消息即可調(diào)用不同的方法。多態(tài)的實</p><p>  2.4 IOS網(wǎng)絡(luò)通信技術(shù)</p>

40、<p>  IOS設(shè)備的網(wǎng)絡(luò)通信的方法,有兩個大類:</p><p>  1、使用socket的方式進行通信。</p><p>  2、使用asynsocket類庫進行通信。</p><p>  使用socket的方式。</p><p>  以TCP為例,對于TCP來說,是要區(qū)分服務(wù)端和客戶端的。服務(wù)端:通常的方法是服務(wù)端啟動后監(jiān)聽

41、,是否有客戶端連接,如果有連接,則建立與客戶端的通信。客戶端的方法通常是連接服務(wù)端,當(dāng)連接成功之后,就希望發(fā)送數(shù)據(jù)了。</p><p>  3系統(tǒng)分析與總體設(shè)計</p><p>  娛樂資訊系統(tǒng)是一個非常實用的信息查看系統(tǒng),提供了各種電影、電視劇、綜藝、音樂信息等資訊。可以使你在第一時間了解娛樂動態(tài)。 </p><p>  3.1 系統(tǒng)功能描述</p>

42、<p>  在中心視圖控制器中是最新的娛樂動態(tài)。本系統(tǒng)分為三個大得模塊:</p><p>  推薦、資訊類、圖片類</p><p>  推薦模塊中是推薦你查看的最近的娛樂新聞,采用的瀑布流界面。</p><p>  資訊類包括:最新、電視劇、綜藝、電影、音樂等。</p><p>  最新是最近發(fā)生的娛樂新聞,電視劇是關(guān)于電視劇介

43、紹的一些娛樂新聞。綜藝是一些綜藝和電影明星的娛樂新聞。電影是最新上映的電影介紹。音樂是音樂名人的一些娛樂新聞。圖片是提供了圖片預(yù)覽。并帶有圖片下載功能。</p><p>  3.2 系統(tǒng)功能模塊劃分</p><p>  從功能描述的內(nèi)容可以看到,本實例可以實現(xiàn)3個完整的功能。我們根據(jù)這些功能,設(shè)計出系統(tǒng)的功能模塊,如圖1所示。</p><p>  圖3_1 娛樂資

44、訊系統(tǒng)功能模塊示意圖</p><p>  3.3 系統(tǒng)流程分析</p><p>  在上一節(jié)中,我們已經(jīng)了解了系統(tǒng)的功能模塊劃分。這是系統(tǒng)總體設(shè)計的重要組成部分。如果要對系統(tǒng)形成一個完整而全面的認識,還需要進行系統(tǒng)流程分析。</p><p>  所謂系統(tǒng)流程就是用戶在使用系統(tǒng)時的工作過程。 </p><p>  3.3.1 推薦模塊流程分析&

45、lt;/p><p>  推薦模塊是采用瀑布流的界面展示,有圖片和描述該圖片的標(biāo)題兩部分組成,瀑布流界面是一種比較流行的網(wǎng)站頁面布局,視覺表現(xiàn)為參差不齊的多欄布局,隨著頁面滾動條向下滾動,這種布局還會不斷加載數(shù)據(jù)塊并附加至當(dāng)前尾部。有效的降低了界面復(fù)雜度,節(jié)省了空間;對觸控設(shè)備來說,交互方式更符合直覺;在移動應(yīng)用的交互環(huán)境當(dāng)中,通過向上滑動進行滾屏的操作已經(jīng)成為最基本的用戶習(xí)慣。</p><p>

46、;  圖3_2 推薦流程圖</p><p>  3.3.2 資訊流程分析</p><p>  圖3_3 資訊最新流程圖 圖3_4 電視劇流程圖 圖3_5 綜藝流程圖 </p><p>  圖3_6 電影流程圖 圖3_7 音樂流程圖</p><p> 

47、 以上流程圖是資訊中的不同部分,分為最新、電視劇、綜藝、電影、音樂幾部分點擊各個部分進入不同的界面,每個界面顯示圖片和標(biāo)題,再次點擊進入下一個界面是該新聞的標(biāo)題和詳情描述,每個界面都有圖片放大功能和下載功能。</p><p>  3.3.3 圖片流程分析</p><p>  圖3_8 圖片流程圖</p><p>  圖片部分是顯示了圖片的標(biāo)題和圖片,點擊進入圖片瀏覽

48、界面,該界面可以滑動實現(xiàn)圖片的瀏覽功能,同時具有圖片下載功能。</p><p><b>  4 系統(tǒng)界面實現(xiàn)</b></p><p><b>  4.1 設(shè)計界面</b></p><p>  本系統(tǒng)采用抽屜式界面風(fēng)格,從國外的Facebook、Path、Gmail到國內(nèi)的人人、WeicoPro、網(wǎng)易新聞、百度百科等客戶端,

49、都采用了抽屜式導(dǎo)航作為app內(nèi)部進行內(nèi)容切換的導(dǎo)航方式,其優(yōu)點在于界面簡介、友好,頁面間跳轉(zhuǎn)邏輯清晰。</p><p>  圖4_1 抽屜式風(fēng)格界面</p><p>  4.2 一級界面展示</p><p>  一級界面展示了娛樂資訊的圖片和標(biāo)題,如圖所示:</p><p>  圖4_2 一級界面展示</p><p>

50、  4.3 二級界面及二級界面放大展示</p><p>  二級界面展示了娛樂資訊的標(biāo)題和圖片以及資訊的詳情。</p><p>  圖4_3 二級界面展示</p><p>  圖4_4 二級放大界面展示</p><p>  4.4 瀑布流界面展示</p><p>  瀑布流界面展示了娛樂新聞的圖片和標(biāo)題,如圖所示:&l

51、t;/p><p>  圖4_5 瀑布流界面展示</p><p>  4.5 圖片界面及圖片預(yù)覽展示</p><p>  顯示界面的圖片和標(biāo)題。如圖所示:</p><p>  圖4_6 圖片界面展示</p><p>  4.6 下載界面展示</p><p>  展示了要下載的圖片及下載進度條、下載、暫

52、停、打開三個按鈕。實現(xiàn)圖片的下載功能。</p><p>  圖4_7 下載界面展示</p><p>  5 程序的設(shè)計模式和核心代碼實現(xiàn)</p><p>  5.1 IOS開發(fā)中的MVC模式</p><p>  MVC:模型,視圖,控制器,是iOS開發(fā)中用到的主要的設(shè)計模式。Model中處理邏輯與數(shù)據(jù),View展示應(yīng)用界面,接收用戶的操作,

53、而Controller夾在View和Model中間,當(dāng)View接收到用戶操作,他將通知Controller,Controller會判斷采取什么樣的措施,Controller也負責(zé)將邏輯和數(shù)據(jù)處理交給Model完成,根據(jù)返回結(jié)果來更新View。Controller就像膠水,將兩個獨立的部分粘合在一起。</p><p>  Model和Controller之間可以通信,View和Controller之間可以通信,而V

54、iew和Model之間是禁止通信的。</p><p>  Controller可以通過直接訪問屬性、調(diào)用方法,來控制Model和View,向他們傳遞消息,對于Storyboard和XIB文件,上面的控件可以通過生成outlet來調(diào)用,如果直接代碼生成的話,就調(diào)用控件實例。</p><p>  Controller必須實現(xiàn)View中所定義的target或者delegate方法,來實現(xiàn)View

55、對Controller的回調(diào)。這樣,View就可以通知Controller自己的變化,以及用戶對View的操作。View還有data source方法,用于向Controller請求某些時刻需要顯式的數(shù)據(jù),比如UITableViewDataSource中,會在table view生成時,向Controller請求表格的行數(shù)和頁面上可見的單元格中的內(nèi)容。</p><p>  Model可以通過Notificatio

56、n和KVO的方式來通知Controller在Model中數(shù)據(jù)的改變。也可以使用delegate或者block來實現(xiàn),在AFNetworking中的網(wǎng)絡(luò)狀態(tài)變化通知,就是使用block來實現(xiàn)的。</p><p>  把所有的邏輯和數(shù)據(jù)都放到Model層中,Model就會變得很雜亂,所以我習(xí)慣把Model再細分:</p><p>  Service層,用于為Controller提供一些最直接的

57、邏輯功能、數(shù)據(jù)封裝,并且管理下一層模塊,向下一層模塊請求數(shù)據(jù)。Controller只管理他所擁有的View,以及與他直接相關(guān)的Service類。</p><p>  Manager層,用于管理一大類操作,比如:數(shù)據(jù)同步功能,寫一個數(shù)據(jù)同步的類,再類中處理網(wǎng)絡(luò)狀態(tài)判斷、緩存數(shù)據(jù)的讀寫以及緩存數(shù)據(jù)的發(fā)送,錯誤處理。Manager層位于Service層之下,接受Service的調(diào)度。</p><p&

58、gt;  Handler層,用于實現(xiàn)具體的操作,如:FileHandler,用來處理文件存儲操作,將字符串或NSData數(shù)據(jù)轉(zhuǎn)換成文件并存放在指定路徑,以及一些多線程處理操作。Handler層接受Manager調(diào)度。</p><p>  Model還有一些其它的部分:實現(xiàn)一些公共方法的Utility工具類,以及一些存儲數(shù)據(jù)結(jié)構(gòu)的類。</p><p>  各個平級的層之間不允許互相調(diào)用,調(diào)用

59、只能自上而下發(fā)生,回調(diào)都使用block來實現(xiàn)。這樣實現(xiàn),項目結(jié)構(gòu)看起來就清晰了許多。</p><p>  5.2 IOS開發(fā)中的代理模式</p><p>  代理是一種簡單而功能強大的設(shè)計模式,這種模式用于一個對象“代表”另外一個對象和程序中其他的對象進行交互。 主對象(這里指的是delegating object)中維護一個代理(delegate)的引用并且在合適的時候向這個代理發(fā)送消

60、息。這個消息通知“代理”主對象即將處理或是已經(jīng)處理完了某一個事件。這個代理可以通過更新自己或是其它對象的UI界面或是其它狀態(tài)來響應(yīng)主對象所發(fā)送過來的這個事件的消息?;蚴窃谀承┣闆r下能返回一個值來影響其它即將發(fā)生的事件該如何來處理。代理的主要價值是它可以讓你容易的定制各種對象的行為。注意這里的代理是個名詞,它本身是一個對象,這個對象是專門代表被代理對象來和程序中其他對象打交道的。</p><p>  5.3 IO

61、S開發(fā)中的觀察者模式</p><p>  在iOS中觀察者模式的實現(xiàn)有三種方法:Notification、KVO以及標(biāo)準(zhǔn)方法。</p><p>  1.Notification</p><p>  Notification - NotificationCenter機制使用了操作系統(tǒng)的功能。通過NSNotificationCenter可以讓對象之間進行進行通訊,這些對

62、象相互間可以不認識。當(dāng)你用一個并行的流來推送通知,或者刷新數(shù)據(jù)庫,并希望在界面中能夠看到時,這非常有用。</p><p>  NotificationCenter發(fā)布消息的方法如下所示:</p><p>  1.NSNotification  * broadcastMessage = [ NSNotification  notificationWithName: Any

63、Notification  object: Self ];?2.NSNotificationCenter  * notificationCenter = [ NSNotificationCenter  defaultCenter];?3.[NotificationCenter postNotification: broadCastMessage];</p><p><b>

64、  2.KVO</b></p><p>  通過KVO,某個對象中的特定屬性發(fā)生了改變,別的對象可以獲得通知。蘋果官方文檔對KVO有了很好的解釋:Key-Value Observing Programming Guide。下面兩種方法都可以改變對象中屬性的值:</p><p>  1.kvoSubj.changeableProperty = @"新的一個值"

65、;?2. ?3.[kvoSubj setValue:@"新的一個值" forKey:@"changeableProperty"];</p><p><b>  3.標(biāo)準(zhǔn)方法  </b></p><p>  標(biāo)準(zhǔn)方法的實現(xiàn)是這樣的:Subject(主題)知道所有的觀察者,但是不知道它們的類型。下面我們就從創(chuàng)建S

66、ubject和Observer(觀察者)的協(xié)議(protocol)開始。</p><p>  1.@protocol StandardObserver ?2.-(void) valueChanged:(NSString *)valueName newValue:(NSString *) newValue;?3.@end?4. ?5.@protocol StandardSubject ?6.-(void) addO

67、bserver:(id) observer;?7.-(void) removeObserver:(id) observer;?8.-(void) notifyObjects;?9.@end</p><p>  5.4 ASIHttpRequest 請求數(shù)據(jù)</p><p>  ASIHttpRequest(父類 NSOperation)功能:</p><p&g

68、t;  1、遵守http協(xié)議,支持對數(shù)據(jù)的同步和異步請求 </p><p>  2、支持get和post請求</p><p>  3、支持多任務(wù)下載(一次能同時下載多個資源),能時時獲取到下載進度</p><p>  4、支持下載資源的斷點續(xù)傳,get請求,請求地址和請求參數(shù)拼接成一個字符串,直 接向服務(wù)器發(fā)起請求,特點:使用便捷,一般用戶獲取數(shù)據(jù),但安全性極差

69、 ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:str]];</p><p>  request.delegate = self;</p><p>  [request startAsynchronous];</p><p>  -(void)requ

70、estFinished:(ASIHTTPRequest *)request{</p><p>  if (request.responseData) {</p><p>  id result = [NSJSONSerialization JSONObjectWithData:request.responseData options:NSJSONReadingMutableContaine

71、rs error:nil];</p><p>  NSArray * array=(NSArray*)result;</p><p>  for (NSDictionary * temp in array) {</p><p>  Model * model=[[Model alloc]init];</p><p>  model.image

72、Str=[temp objectForKey:@"image"];</p><p>  model.titleStr=[temp objectForKey:@"title"];</p><p>  model.appIdStr=[temp objectForKey:@"id"];</p><p>  [_d

73、ataArray addObject:model];</p><p><b>  }</b></p><p>  [_tableView reloadData];</p><p><b>  }</b></p><p><b>  }</b></p><p&

74、gt;  請求下來的數(shù)據(jù)格式為json的格式:(客戶端與服務(wù)端進行數(shù)據(jù)傳輸常用的格式)</p><p>  將json格式的數(shù)據(jù)轉(zhuǎn)化成熟悉的數(shù)據(jù)類型:NSArray或者NSDictionary</p><p>  將NSString轉(zhuǎn)化成NSData 將data數(shù)據(jù)進行解析:</p><p>  NSJSONSerialization ios5之后出現(xiàn)的 系統(tǒng)自

75、帶的json解析類,比較高效;</p><p>  options設(shè)置為NSJSONReadingMutableContainers,得到解析結(jié)果是NSArray或者 NSDictionary</p><p>  5.5 抽屜式界面的實現(xiàn)代碼</p><p>  MMDrawerController * drawerController=[[MMDrawerCont

76、roller alloc]initWithCenterViewController:navigation leftDrawerViewController:leftView rightDrawerViewController:rightView];</p><p>  [drawerController setMaximumLeftDrawerWidth:190];</p><p>  [

77、drawerController setMaximumRightDrawerWidth:200];</p><p>  [drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];</p><p>  [drawerController setCloseDrawerGestureModeMask:MM

78、CloseDrawerGestureModeAll];</p><p>  5.6 列表視圖的實現(xiàn)主要代碼</p><p>  -(void)creatTabelView</p><p><b>  {</b></p><p>  _tableView=[[UITableView alloc]initWithFrame:

79、CGRectMake(0, 44,kMainScreenWidth, kMainScreenHeight-44)];</p><p>  _tableView.delegate=self;</p><p>  _tableView.dataSource=self;</p><p>  _tableView.showsVerticalScrollIndicato

80、r=NO;</p><p>  [self.view addSubview:_tableView];</p><p><b>  }</b></p><p>  -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{<

81、/p><p>  return [_dataArray count]+1;</p><p><b>  }</b></p><p>  -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{</

82、p><p>  static NSString *cellIde=@"cellId";</p><p>  CellForCenterView * cell=[_tableView dequeueReusableCellWithIdentifier:cellIde];</p><p>  if (cell==nil) </p><

83、p><b>  {</b></p><p>  cell=[[[NSBundle mainBundle]loadNibNamed:@"CellForCenterView" owner:self options:nil]lastObject];</p><p>  [cell setSelectionStyle:UITableViewCellS

84、electionStyleGray];</p><p><b>  }</b></p><p>  if (indexPath.row<[_dataArray count]) </p><p><b>  {</b></p><p>  Model * model=[_dataArray ob

85、jectAtIndex:indexPath.row];</p><p>  cell.labelCell.text=model.titleStr;</p><p>  [cell.imageViewCell setImageWithURL:[NSURL URLWithString:model.imageStr]];</p><p><b>  }<

86、;/b></p><p>  return cell;</p><p><b>  }</b></p><p><b>  6 結(jié)束語</b></p><p>  本應(yīng)用系統(tǒng)是基于IOS系統(tǒng)開發(fā)的,利用了Xcode工具進行開發(fā),實現(xiàn)的基本功能是能夠使用戶進行娛樂資訊的查詢,在第一時間了解最新的

87、娛樂動態(tài)。并且能夠?qū)崿F(xiàn)下載用戶喜歡的圖片。對本應(yīng)用系統(tǒng)的開發(fā)自己還有很多不足之處,還有很多功能沒有實現(xiàn),例如,沒有實現(xiàn)通過新浪微博分享給其他用戶的功能。我任然需要繼續(xù)努力完善自己的不足之處。</p><p>  對IOS,Object-C等相關(guān)技術(shù)很不了解的狀態(tài),我開始了獨立的學(xué)習(xí)和試驗,查看相關(guān)的資料和書籍,讓自己頭腦中模糊的概念逐漸清晰,使自己非常稚嫩作品一步步完善起來,每一次改進都是我學(xué)習(xí)的收獲,每一次試驗

88、的成功都會讓我興奮好一段時間。從中我也充分認識到了博客這一新興的出版方式給我們生活帶來的樂趣,在屬于自己的網(wǎng)絡(luò)空間上,盡情宣泄自己的情感,表達自己的感受,并且把自己的想法與他人分享,我也有了一個屬于自己的博客空間。</p><p>  Objective-C是我新學(xué)習(xí)的語言,通過這個課程設(shè)計,我通過自己查詢資料,學(xué)習(xí),對Objective-C的知識有了更深一步的了解,這次設(shè)計的時間有限,所以我做了一個自己比較喜歡

89、的應(yīng)用軟件,剛開始做時,雖然知道主要思想但把它要表示出來真的很不容易,通過查資料,上網(wǎng),經(jīng)過這段時間的努力,終于做出了這款應(yīng)用程序,雖然還有很多不足,但做出來后還是很開心的,測試這個應(yīng)用軟件的功能時,感覺很不錯,通過這個課程設(shè)計我對Objective-C有了一個更深一步的認識??傮w來說這次的設(shè)計還是很成功的。</p><p><b>  參 考 文 獻</b></p><

90、p>  [1] 王志剛.編著應(yīng)用程序開發(fā)攻略之iPhone特色傳感器應(yīng)用[M].北京:電子工業(yè)出版社,2011:2. </p><p>  [2] Gene Backlin(美)著.岳紅 凌沖譯.iPhone&iPad高級編程[M].北京:清華大學(xué)出版社,2012:1.</p><p>  [3] Wei-Meng Lee(美)著.張龍譯.IOS 4編程入門經(jīng)典[M].北京:

91、清華大學(xué)出版社,2012:1.</p><p>  [4] 虞斌著. Ios軟件開發(fā)揭秘:iPhone&iPad企業(yè)應(yīng)用和游戲開發(fā)[M].北京:電子工業(yè)出版社,2011:1.</p><p>  [5] 克萊爾(美)著.李強譯.Objective-C2.0Mac和ios開發(fā)實踐指南[M].北京:機械工業(yè)出版社,2011:1. </p><p>  [6] B

92、rian W.Kernighan ,Deninis M Rirchie(美)著,徐寶文,李志(譯)The C Programming Language[M].北京:機械工業(yè)出版社2003:2.</p><p>  [7] 徐松林,黃猛著.cocos2D-x手機游戲開發(fā)[M].北京:人民郵電出版社.</p><p>  [8] Ron patton(美)著.王鈺,曹躍譯.軟件測試[M].北京

93、:機械工業(yè)出版社,2006:4.</p><p>  [9] 王水著.軟件工程[M].河南:河南科學(xué)技術(shù)出版社,2008:8.</p><p>  [10] 吳潔明著.軟件工程實例教程[M].北京:清華大學(xué)出版社,2010:11.</p><p>  [11] 郭東恩著.數(shù)據(jù)庫原理及應(yīng)用[M].河南:河南科學(xué)技術(shù)出版社,2008:4.</p><

94、p>  [12] Dan Pilone著.Head First iPhone Development[M].北京:東南大學(xué)出版社,2012:</p><p><b>  致 謝</b></p><p>  在此次設(shè)計中,非常感謝王超老師對我的指導(dǎo)和幫助。王老師認真負責(zé)的工作態(tài)度,嚴謹?shù)闹螌W(xué)精神和深厚的理論、實踐水平都使我收益匪淺。他無論在理論上還是在實踐中,都給

95、與我很大的幫助,使我得到不少的提高,這對于我以后的工作和學(xué)習(xí)都有一種巨大的幫助,感謝他耐心的輔導(dǎo)。另外,在系統(tǒng)開發(fā)過程中,我身邊的同學(xué)以及我同組的同學(xué)也給予我很多的幫助,我在他們的幫助下解決了不少的難點,使得系統(tǒng)能及時開發(fā)完成,這里一并表示感謝。</p><p>  在論文即將完成之際,從開始進入課題到論文的順利完成,有許多可敬的師長、同學(xué)、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!最后我還要感謝培養(yǎng)我長大

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論