版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 屆 別 2016屆 </p><p> 學(xué) 號(hào) 201214240204 </p><p><b> 畢業(yè)設(shè)計(jì)</b></p><p> 基于iOS系統(tǒng)新聞資訊APP</p><p> 姓 名
2、 鄧小勇 </p><p> 系 別、 專 業(yè) 電子信息與電氣工程學(xué)院 </p><p> 電氣工程及其自動(dòng)化 </p><p> 導(dǎo) 師 姓 名、職 稱 何湘艷 講師 </p><p> 完 成 時(shí) 間
3、 2016年5月 </p><p><b> 目錄</b></p><p><b> 摘要I</b></p><p> AbstractII</p><p><b> 第一章 緒論1</b></p><
4、p> 1.1 課題開(kāi)發(fā)背景2</p><p> 1.2 新聞資訊app系統(tǒng)框架設(shè)計(jì)開(kāi)發(fā)的現(xiàn)實(shí)意義3</p><p> 1.3 本系統(tǒng)預(yù)達(dá)到的目標(biāo)3</p><p> 第二章 新聞資訊app系統(tǒng)開(kāi)發(fā)技術(shù)簡(jiǎn)介4</p><p> 2.1 Objective-c簡(jiǎn)介4</p><p> 2.1.1
5、 ios系統(tǒng)框架5</p><p> 2.1.2 iOS系統(tǒng)各個(gè)層次5</p><p> 2.1.3應(yīng)用程序框架6</p><p> 2.2 Xcode介紹9</p><p> 第三章 新聞資訊app技術(shù)與需求分析10</p><p> 3.1 新聞資訊app的可行性分析11</p>
6、<p> 3.1.1 使用Objective-C編程技術(shù)11</p><p> 3.1.2 Objective-C的三大特點(diǎn)(繼承,封裝,多態(tài)):11</p><p> 3.2社會(huì)因素和市場(chǎng)因素可行性12</p><p> 3.3 新聞資訊app需求分析13</p><p> 第四章 新聞資訊app系統(tǒng)實(shí)現(xiàn)16
7、</p><p> 4.1 初始框架的實(shí)現(xiàn)16</p><p> 4.1首頁(yè)功能模塊實(shí)現(xiàn)23</p><p> 4.3.國(guó)內(nèi)外模塊功能實(shí)現(xiàn)32</p><p> 4.4.地方資訊功能模塊36</p><p> 4.5.個(gè)人中心功能模塊實(shí)現(xiàn)39</p><p> 4.6.模塊
8、使用的主要技術(shù)41</p><p> 4.6.1 網(wǎng)絡(luò)請(qǐng)求的二次封裝:41</p><p> 5.6.2 單例模式45</p><p> 4.7.主要技術(shù)框架46</p><p><b> 總結(jié)46</b></p><p><b> 參考文獻(xiàn)47</b>
9、</p><p><b> 致謝48</b></p><p><b> 摘要</b></p><p> 新聞資訊是一種用于對(duì)游戲介紹,下載軟件。它涵蓋了各種游戲。它們不僅界面美觀,而且操作簡(jiǎn)單,讓人第一眼看著就印象深刻。它還可以讓人們?cè)跓o(wú)聊的時(shí)候觀看各種游戲視頻,它支持各種視頻格式。并且有著最新的游戲資訊,讓人第一
10、時(shí)間知道,既快捷又方便。</p><p> 本文主要介紹了iOS平臺(tái)以及基于該平臺(tái)新聞資訊app的系統(tǒng)的發(fā)展現(xiàn)狀與功能實(shí)現(xiàn)。本系統(tǒng)是一款基于iPhone平臺(tái)的資訊app。資源占用率小,運(yùn)行效率高,操作簡(jiǎn)潔,擴(kuò)展能力強(qiáng)。本系統(tǒng)播放畫面流暢,具有聲效和圖效上的聽(tīng)覺(jué)及視覺(jué)的享受。</p><p> 使用本app時(shí)您會(huì)覺(jué)得世界之大無(wú)奇不有的新聞,讓你了解世界各處的新聞 在使用app的同時(shí)能夠看
11、視頻,常用iPhone控件等技術(shù),模塊與模塊間低耦合,高內(nèi)聚,采用模塊化方法編程,維護(hù)性較高。</p><p><b> 關(guān)鍵詞 新聞資訊</b></p><p><b> Abstract</b></p><p> News and information is a kind of used for the gam
12、e, download the software.It covers all kinds of games.They not only beautiful interface, and simple operation, let a person at first glance looks impressive.It can also make people in bored watching all kinds of video ga
13、me, it supports a variety of video formats.And with the latest game information, let a person know the first time, quick and convenient.This article mainly introduced the iOS platform and based on this platform system de
14、velopment </p><p> Key word:News and information</p><p><b> 第一章 緒論</b></p><p> 隨著計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)和Internet的飛速發(fā)展,基于因特網(wǎng)的手機(jī)移動(dòng)應(yīng)用已經(jīng)開(kāi)始成為一種全新的功能需求,并且越來(lái)越受到人們的關(guān)注。由于移動(dòng)應(yīng)用具有簡(jiǎn)單性,隨時(shí)隨地性等諸多
15、特點(diǎn),因此它有著傳統(tǒng)計(jì)算機(jī)所無(wú)法比擬的優(yōu)點(diǎn)。這樣一來(lái),手機(jī)移動(dòng)應(yīng)用的開(kāi)發(fā)工作就顯得尤為重要,然而手機(jī)即時(shí)新聞也隨之發(fā)展起來(lái)了,基本每個(gè)智能手機(jī)都會(huì)裝上一款新聞資訊類的app。</p><p> 第一章,介紹了課題的開(kāi)發(fā)背景、課題開(kāi)發(fā)的現(xiàn)實(shí)意義、新聞資訊的概念以及預(yù)期達(dá)到的目標(biāo)。 </p><p> 第二章,概略地介紹了開(kāi)發(fā)音樂(lè)播放器多用到的各種技術(shù),比如新技術(shù)Objective-c,開(kāi)
16、源框架的josn解析等。</p><p> 第三章,對(duì)新聞資訊app的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)功能、運(yùn)行環(huán)境等概要分析設(shè)計(jì)階段做工了大體介紹即需求分析。</p><p> 第四章,對(duì)系統(tǒng)總體流程設(shè)計(jì)、系統(tǒng)整體框架、后臺(tái)邏輯處理功能設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)作了簡(jiǎn)要說(shuō)明。</p><p> 第五章,具體介紹了系統(tǒng)各功能實(shí)現(xiàn)過(guò)程,如app界面的處理, 個(gè)人信息的處理等。<
17、;/p><p> 第六章,大體介紹了對(duì)本系統(tǒng)的測(cè)試工作,涵蓋了測(cè)試計(jì)劃、測(cè)試結(jié)果以及測(cè)試分析這三個(gè)方面的內(nèi)容。</p><p> 1.1 課題開(kāi)發(fā)背景</p><p> 如今的移動(dòng)應(yīng)用開(kāi)發(fā)產(chǎn)業(yè)讓人眼花繚亂,主要的移動(dòng)操作平臺(tái)有:iOS iPhoneOS 、Android、Nokia Symbian、BlackBerry、Java ME、Windows Phone、
18、Flash/Flash Lite等。Android以其開(kāi)放性,多任務(wù),大功能,畫面流暢,硬件設(shè)備優(yōu)良多樣等各種優(yōu)點(diǎn),占智能機(jī)一大部分;然而它也存在著很明顯的不足,如:兼容性差,各種機(jī)型的配置不一樣,以至于開(kāi)發(fā)的時(shí)候出現(xiàn)各種版本。有些產(chǎn)品華而不實(shí),用戶體驗(yàn)差。Symbian主要基于C語(yǔ)言的應(yīng)用開(kāi)發(fā),支持多線程運(yùn)行模式,但是開(kāi)發(fā)代碼量過(guò)大給開(kāi)發(fā)人員造成很大的不便,另外塞班版本之間兼容性差也是SymbianOS需要改進(jìn)的一個(gè)地方。就目前而言,
19、三大平臺(tái) Android、Symbian、BlackBerry 的市場(chǎng)占有率也在逐漸下降,iOS呈現(xiàn)平穩(wěn)上升趨勢(shì)。</p><p> 1.App Store的支付模式成熟。不僅僅是商業(yè)模式的創(chuàng)新,更重要的是無(wú)法模仿,經(jīng)過(guò)長(zhǎng)時(shí)間的運(yùn)營(yíng),App Store已經(jīng)形成完備的支付模式,被大部分用戶接受。</p><p> 2.iOS是用Objective-C開(kāi)發(fā)。從全球的編程語(yǔ)言排行榜來(lái)看,雖然
20、,Objective-C只有蘋果公司一家使用,但是已經(jīng)排名第4,可見(jiàn)iOS開(kāi)發(fā)的普及性和受歡迎程度,另外,基于C語(yǔ)言,運(yùn)行效率更高。</p><p> 3.蘋果iPhone以及所有蘋果的硬件軟件策略和控制讓蘋果在用戶體驗(yàn)和控制產(chǎn)品質(zhì)量方面占盡先機(jī),大部分iOS用戶能夠同時(shí)對(duì)他們手中的設(shè)備進(jìn)行更新,這會(huì)吸引更多用戶。</p><p> 4.iPhone在中國(guó)極受歡迎。中國(guó)的各大移動(dòng)運(yùn)營(yíng)商
21、都積極地與蘋果公司合作,各自推出適合中國(guó)人使用的手機(jī)套餐和應(yīng)用,比如中國(guó)聯(lián)通,中國(guó)電信等等,社會(huì)各界也對(duì)iPhone有很好的評(píng)價(jià)。</p><p> 1.2 新聞資訊app系統(tǒng)框架設(shè)計(jì)開(kāi)發(fā)的現(xiàn)實(shí)意義</p><p> 隨著手機(jī)的更新?lián)Q代,功能的提升,人們已經(jīng)可以在手機(jī)上裝更多軟件了并且可以很流暢的運(yùn)行,現(xiàn)在中國(guó)有百分之60%的人在用智能手機(jī),人們用手機(jī)是為了更方便,消息傳遞快等,所以一
22、款好的新聞資訊app是不可缺少的,現(xiàn)在市面上好的新聞資訊app很多,競(jìng)爭(zhēng)也很大。以前人們了解新聞都是從報(bào)紙,書籍上了解,那樣消息傳遞太慢了,現(xiàn)在我們只需要下載一個(gè)app就可以在任何時(shí)候都可以知道前一分鐘在某個(gè)地方發(fā)生的事。所以新聞資訊app的市場(chǎng)還是很廣的。本app是基于iOS系統(tǒng)開(kāi)發(fā),因?yàn)楝F(xiàn)在很多人買iPhone手機(jī)為的就是更流暢,體驗(yàn)更好。本app運(yùn)行效率也高,操作簡(jiǎn)潔,擴(kuò)展能力強(qiáng)等特點(diǎn)</p><p>
23、1.3 本系統(tǒng)預(yù)達(dá)到的目標(biāo)</p><p> 本系統(tǒng)緊跟當(dāng)前移動(dòng)手機(jī)開(kāi)發(fā)趨勢(shì),使用Objective-c語(yǔ)言開(kāi)發(fā)一個(gè)基于新聞資訊類的app,實(shí)現(xiàn)基于iOS平臺(tái)的新聞快速瀏覽,觀看視頻的基本功能。</p><p> 第二章 新聞資訊app系統(tǒng)開(kāi)發(fā)技術(shù)簡(jiǎn)介</p><p> 該部分主要包括對(duì)iOS系統(tǒng)架構(gòu)的分析,核心操作系統(tǒng)的分析,應(yīng)用程序框架的分析,內(nèi)核的分析,
24、開(kāi)發(fā)環(huán)境的配置信息,選用數(shù)據(jù)庫(kù)描述信息等。</p><p> 2.1 Objective-c簡(jiǎn)介</p><p> 蘋果公司最早于2007年1月9日的Macworld大會(huì)上公布這個(gè)系統(tǒng),最初是設(shè)計(jì)給iPhone使用的,后來(lái)陸續(xù)套用到iPod touch、iPad以及Apple TV等蘋果產(chǎn)品上。iOS與蘋果的Mac OS X操作系統(tǒng)一樣,它也是以Darwin為基礎(chǔ)的,因此同樣屬于類Un
25、ix的商業(yè)操作系統(tǒng)。原本這個(gè)系統(tǒng)名為iPhone OS,直到2010年6月7日WWDC大會(huì)上宣布改名為iOS</p><p> Objective-C,是擴(kuò)充C的面向?qū)ο缶幊陶Z(yǔ)言。它主要使用于Mac OS, Objective-C通常寫作OC和較少用的Objective C或Objc,是在C的基礎(chǔ)上,加入面向?qū)ο筇匦詳U(kuò)充而成的編程語(yǔ)言。目前,Objective-C主要應(yīng)用于Mac OS X和iOS這兩個(gè)系統(tǒng)。O
26、bjective-C可以在任何GCC支持的平臺(tái)上進(jìn)行編譯,因?yàn)镚CC原生支持Objective-C</p><p> Objective-C是C語(yǔ)言的嚴(yán)格母集合,意指任何原始的C語(yǔ)言程式都可以通過(guò)Objective-C編譯器而不需修改,也允許 Objective-C 使用任何原始的C語(yǔ)言代碼。Objective-C 形容自己為覆蓋于C語(yǔ)言上的一層薄紗,這是因?yàn)镺bjective-C的原意就是在原始C語(yǔ)言主體上加
27、入面向?qū)ο蟮奶匦?。Objective-C的面向?qū)ο笳Z(yǔ)法源于Smalltalk訊息傳遞風(fēng)格。所有其他非面向?qū)ο蟮恼Z(yǔ)法,包括變量型別,前處理器(preprocessing),流程控制,函數(shù)聲明與調(diào)用皆與C語(yǔ)言完全一致。</p><p> 2.1.1 ios系統(tǒng)框架</p><p> iOS的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。iOS分為四層,分別為核心操作系統(tǒng) the Core O
28、S layer ,核心服務(wù)層 the Core Services layer ,媒體層 the Media layer ,Cocoa觸摸架構(gòu)層 the Cocoa Touch layer 。 </p><p> 2.1.2 iOS系統(tǒng)各個(gè)層次</p><p> Core OS是位于iOS系統(tǒng)架構(gòu)最下面的一層是核心操作系統(tǒng)層,它包括內(nèi)存管理、文件系統(tǒng)、電源管理以及一些其他的操作系統(tǒng)任務(wù)。
29、它可以直接和硬件設(shè)備進(jìn)行交互。作為app開(kāi)發(fā)者不需要與這一層打交道。</p><p> Core Services是核心服務(wù)層,可以通過(guò)它來(lái)訪問(wèn)iOS的一些服務(wù)。</p><p> Media是媒體層,通過(guò)它我們可以在應(yīng)用程序中使用各種媒體文件,進(jìn)行音 頻與視頻的錄制,圖形的繪制,以及制作基礎(chǔ)的動(dòng)畫效果。 </p><p> Cocoa To
30、uch是可觸摸層,這一層為我們的應(yīng)用程序開(kāi)發(fā)提供了各種有用的框架,并且大部分與用戶界面有關(guān),本質(zhì)上來(lái)說(shuō)它負(fù)責(zé)用戶在iOS設(shè)備上的觸摸交互操作。包括以下這些組件:OS X Kernel,Mach 3.0,BSD,Sockets,Power Mgmt,F(xiàn)ile System Keychain,Certificates,Security,Bonjour等。在Cocoa Touch層中的很多技術(shù)都是基于Objective-C語(yǔ)言的。Object
31、ive-C語(yǔ)言為iOS提供了相機(jī)集合,文件管理,網(wǎng)絡(luò)操作等支持。例如開(kāi)發(fā)人員接觸最多的UIKit框架,它為應(yīng)用程序提供了各種可視化組件,窗口 window ,視圖 view 和按鈕組件 UIButton 。Cocoa Touch層中的其他框架,對(duì)我們?cè)趹?yīng)用程序中的開(kāi)發(fā)來(lái)說(shuō)也是非常有用的,如訪問(wèn)用戶通信錄功能框架,獲取照片信息功能的框架,負(fù)責(zé)加速感應(yīng)器和三維陀螺儀等硬件支持的框架等等。</p><p> 2.1.
32、3應(yīng)用程序框架</p><p> 編寫應(yīng)用程序項(xiàng)目,都是從Cocoa Touch層開(kāi)始的,iOS 應(yīng)用程序的基礎(chǔ) Cocoa</p><p> Touch 框架重用了許多 Mac 系統(tǒng)的成熟模式,但是它更多地專注于觸摸的接口和優(yōu)</p><p> 化。UIKit 為您提供了在 iOS 上實(shí)現(xiàn)圖形,事件驅(qū)動(dòng)程序的基本工具,其建立在和 </p>&l
33、t;p> Mac OS X 中一樣的 Foundation 框架上,包括文件處理,網(wǎng)絡(luò),字符串操作等。大部</p><p> 分 Cocoa Touch 的功能是用 Objective-C 實(shí)現(xiàn)的。Objective-C 是一種面向?qū)ο蟮?lt;/p><p> 語(yǔ)言,它編譯運(yùn)行的速度令人難以置信。更值得一提的是采用了真正的動(dòng)態(tài)運(yùn)行時(shí)系</p><p> 統(tǒng)
34、,從而增添了難能可貴的靈活性。由于 Objective-C 是 C 的超集,因而可以很容</p><p> 易地將 C 甚至 C++ 代碼添加到您的 Cocoa Touch 程序里。</p><p> 當(dāng)您的應(yīng)用程序運(yùn)行時(shí),Objective-C 運(yùn)行時(shí)系統(tǒng)按照?qǐng)?zhí)行邏輯對(duì)對(duì)象進(jìn)行實(shí)例化—而且不僅僅是按照編譯時(shí)的定義。例如,一個(gè)運(yùn)行中的 Objective-C 應(yīng)用程序能夠加載一個(gè)界面(
35、一個(gè)由 Interface Builder 創(chuàng)建的 nib 文件),將界面中的 Cocoa 對(duì)象連接至您的程序代碼,然后,一旦UI中的某個(gè)按鈕被按下,程序便能夠執(zhí)行對(duì)應(yīng)的方法。</p><p><b> 基本框架有:</b></p><p> AddressBook.framework 提供訪問(wèn)存儲(chǔ)核心數(shù)據(jù)庫(kù)中用戶聯(lián)系人信息的功能。</p><
36、p> AddressBook.framework提供一個(gè)用戶界面,用于顯示存儲(chǔ)在地址薄中的聯(lián)系人詳情。</p><p> AudioUnit.framework提供一個(gè)接口,讓我們的應(yīng)用程序可以對(duì)音頻進(jìn)行處理。</p><p> AudioToolbox.framework和AVFoundation.framework提供音頻錄制和回放的底層API,同時(shí)也負(fù)責(zé)管理音頻硬件。&l
37、t;/p><p> CFNetwork.framework訪問(wèn)和配置網(wǎng)絡(luò),像HTTP,F(xiàn)TP和Bonjour Services等。</p><p> CoreFoundation.framework提供抽象的常用數(shù)據(jù)類型,如Unicode、strings、XML、URL等。</p><p> CoreGraphics.framework提供2D繪制的基于C的API
38、。</p><p> Foundation.framework提供Object-C的基礎(chǔ)類 像NSObject 、基本數(shù)據(jù)類型和操作系統(tǒng)服務(wù)等。</p><p> GameKit.framework為游戲提供網(wǎng)絡(luò)功能,點(diǎn)對(duì)點(diǎn)互聯(lián)和游戲中的語(yǔ)音交流。</p><p> MapKit.framework為應(yīng)用程序提供內(nèi)嵌地圖的接口。</p><
39、p> MediaPlayer.framework提供視頻播放和音頻的功能。</p><p> MessageUI.framework提供視圖控制接口用以處理E-mail和短信。</p><p> OpenGLES.framework提供簡(jiǎn)潔而高效的繪制2D和3D圖形的OpenGL API。</p><p> QuartzCore.framework提供
40、動(dòng)畫特效以及通過(guò)硬件進(jìn)行渲染的能力。</p><p> StoreKit.framework為應(yīng)用程序提供在程序運(yùn)行中消費(fèi)的支持。</p><p> SystemConfiguration.framework檢測(cè)當(dāng)前網(wǎng)絡(luò)是否可用和硬件設(shè)備狀態(tài)的能力。</p><p> 2.2 Xcode介紹</p><p> Xcode 是運(yùn)行在操作
41、系統(tǒng)Mac OS X上的集成開(kāi)發(fā)工具(IDE),由蘋果公司開(kāi)發(fā)。Xcode是開(kāi)發(fā)OS X 和 iOS 應(yīng)用程序的最快捷的方式。Xcode 具有統(tǒng)一的用戶界面設(shè)計(jì),編碼、測(cè)試、調(diào)試都在一個(gè)簡(jiǎn)單的窗口內(nèi)完成。 </p><p> Xcode 4 的虛擬模型和設(shè)計(jì)功能讓你可以更輕松的開(kāi)發(fā)和維護(hù)應(yīng)用程序。只需選擇應(yīng)用程序中想要編寫的部分,然后模型和設(shè)計(jì)系統(tǒng)將自動(dòng)創(chuàng)建分類圖表,不僅可以顯示編碼,還可以讓你進(jìn)行瀏覽。
42、Mac OS X Core Data API 幫你的應(yīng)用程序創(chuàng)建數(shù)據(jù)結(jié)構(gòu)。更棒的是,它還自動(dòng)提供撤消、重做和保存功能,無(wú)需編寫任何編碼。 </p><p> Xcode 整合的 Apple Reference Library 為所有的Apple開(kāi)發(fā)者文件提供一個(gè)單獨(dú)的搜索和顯示界面,這些文件包括來(lái)自蘋果電腦公司網(wǎng)站的在線文件,以及存放在你電腦上的文件。新的參考資料庫(kù)甚至可以幫你將定期更新資料下載到你的電腦,保持
43、文件的最新?tīng)顟B(tài)。Xcode 將幫你快速找到最新的答案。 </p><p> Xcode 4 的核心部分是蘋果電腦公司下一代業(yè)界標(biāo)準(zhǔn)的 gcc 編譯器gcc 4.0。新的編譯器利用許多先進(jìn)的最優(yōu)化技術(shù)幫你從現(xiàn)存編碼中獲得更多性能。從超級(jí)計(jì)算世界借鑒來(lái)的自動(dòng)向量化(Auto-vectorization)技術(shù)可以幫助你釋放每臺(tái) Intel 系統(tǒng)中速度引擎的能量,而不需要編寫向量化編碼。其他的最優(yōu)化工具則支持反饋定向的
44、最優(yōu)化,以及隱藏模塊分析。 </p><p> Xcode 將賦予你創(chuàng)建諸如計(jì)算和渲染引擎應(yīng)用程序的能力,這些應(yīng)用程序使用64位內(nèi)存定址。這非常適合數(shù)據(jù)集中的應(yīng)用程序,其通過(guò)訪問(wèn)內(nèi)存中的數(shù)據(jù)運(yùn)行速度更快,遠(yuǎn)勝于磁盤訪問(wèn)。Xcode 將為你提供工具來(lái)建立并調(diào)試適合 Intel Core i5, i7 和 Mac OS X Lion 的 32 或 64 位應(yīng)用程序,還可以讓你創(chuàng)建包含32位和64位執(zhí)行能力的 Fat
45、 Binaries。 </p><p> 眾所周知,在構(gòu)建中引進(jìn)多重處理器可以提高速度,Xcode 能幫你實(shí)現(xiàn)這個(gè)明顯的結(jié)論。利用支持 Rendezvous 的分布式構(gòu)建功能,可以輕易地把編譯工作量分散到閑置的電腦上來(lái)寄放構(gòu)建,或者更好是在單獨(dú)的電腦上開(kāi)發(fā)一個(gè)專門的 Xserve 構(gòu)建寄放區(qū),快速處理那些耗時(shí)的任務(wù)。</p><p> 不管你用 C、C++、 Objective-C或
46、Java編寫程序,在 AppleScript里編寫腳本,還是試圖從另一個(gè)奇妙的工具中轉(zhuǎn)移編碼,你會(huì)發(fā)現(xiàn) Xcode 編譯速度極快。每次操作都很快速和輕松。</p><p> 第三章 新聞資訊app技術(shù)與需求分析</p><p> 根據(jù)第一章所定義的課題研究方向及目標(biāo),本章將對(duì)系統(tǒng)功能進(jìn)行具體的需求分析,具體分析app所要實(shí)現(xiàn)的功能以及欲達(dá)到的效果。</p><p&g
47、t; 3.1 新聞資訊app的可行性分析</p><p> 3.1.1 使用Objective-C編程技術(shù)</p><p> Objective-C是C語(yǔ)言的面向?qū)ο髷U(kuò)展,可以將其稱為“帶有對(duì)象的C”。相對(duì)于其他面向?qū)ο笳Z(yǔ)言,Objective-C更加容易學(xué)習(xí)。 </p><p> 3.1.2 Objective-C的三大特點(diǎn)(繼承,封裝,多態(tài)):</
48、p><p><b> 多態(tài)性</b></p><p> 在Objective-c中消息的調(diào)用看上去和標(biāo)準(zhǔn)C中的函數(shù)調(diào)用相似,但因?yàn)榉椒▽儆谝粋€(gè)對(duì)象,消息的行為與函數(shù)調(diào)用還是不同。在一些情況下,一些對(duì)象僅能對(duì)針對(duì)它涉及的方法起作用,不能被其他類的方法使用,即使這些類有同樣名稱的方法。這意味著兩個(gè)對(duì)象對(duì)同樣的消息有著不同的響應(yīng),即多態(tài)性。Objective-c中多態(tài)性和動(dòng)
49、態(tài)綁定配合使用,可以使代碼提供給任意數(shù)量不同類型的對(duì)象使用,這些對(duì)象不需要再寫代碼的時(shí)候就已經(jīng)定義好,它們可以是以后開(kāi)發(fā)的對(duì)象,也可以是其他項(xiàng)目的對(duì)象。</p><p><b> 封裝</b></p><p> iOS封裝代碼可以看出一個(gè)程序員的代碼功底,一個(gè)好的app就必須要進(jìn)行代碼封裝,另外就是對(duì)一些API,重要屬性進(jìn)行封裝:</p><p
50、> @private: 此時(shí)類的成員變量只能在當(dāng)前類的實(shí)現(xiàn)@implementation直接訪問(wèn);</p><p> @protected: 此時(shí)類的成員變量只能在當(dāng)前類以及子類的實(shí)現(xiàn)@implementation能 直接訪問(wèn);</p><p> @public:任何地方都可以訪問(wèn):</p><p> @package:同一體系內(nèi)(架構(gòu))可以直接訪
51、問(wèn),介于@private和@public之間。</p><p><b> 繼承性</b></p><p> 類的定義是累進(jìn)的,任一個(gè)新類都是在另一個(gè)類的基礎(chǔ)上定義的,新類繼承了它的方法和實(shí)例變量。繼承使所有的類構(gòu)成一顆樹(shù)形的結(jié)構(gòu),在Objective-c中使用類一般要繼承或間接繼承于基類:NSObject,因?yàn)镹SObject提供了大量的有用特性。比如,一些圖形類
52、,需要繼承于Shape類,而Shape是Graphic類的子類,Graphic又繼承于NSObject類,因此,還是間接繼承于NSObject類。</p><p> 3.2社會(huì)因素和市場(chǎng)因素可行性</p><p> 如今社會(huì)發(fā)展迅速,每個(gè)人都不再滿足于某一個(gè)的游戲,越來(lái)越多地人手機(jī)里游戲在五個(gè)以上。所以一個(gè)好的游戲資訊app迫在眉睫。</p><p> 按照目
53、前市場(chǎng)情形,越來(lái)越多的移動(dòng)開(kāi)發(fā)者涌進(jìn)iOS開(kāi)發(fā)領(lǐng)域。iOS平臺(tái)上應(yīng)用軟件,App Store的支付模式更為成熟而且有監(jiān)管,另外iOS的兼容性問(wèn)題小,開(kāi)發(fā)人員不用考慮太多的配置兼容問(wèn)題,美觀大方的外形,更是吸引了大量的用戶。而且其良好的用戶體驗(yàn),都為iOS的發(fā)展奠定了良好的基礎(chǔ)。</p><p> 3.3 新聞資訊app需求分析</p><p> 本系統(tǒng)是基于iOS平臺(tái)開(kāi)發(fā)的一款資訊類a
54、pp,將要應(yīng)用在iOS移動(dòng)通訊設(shè)備上,能夠盡可能的滿足用戶更方便更快捷的了解更多新聞信息,對(duì)于一個(gè)資訊類app首先界面要讓人看的舒服,并且能留下印象,另外就是后臺(tái)數(shù)據(jù)要及時(shí)更新最新資訊。</p><p> 為了防止大家在瀏覽app的時(shí)候感覺(jué)枯燥無(wú)味,因此加了炫酷的視頻供大家看。</p><p> 第四章 新聞資訊app系統(tǒng)實(shí)現(xiàn)</p><p> 根據(jù)設(shè)計(jì)階段的
55、工作成果系統(tǒng)各個(gè)功能模塊實(shí)現(xiàn)的效果是比較理想的。下面是各個(gè)功能模塊的實(shí)現(xiàn)。</p><p> 4.1 初始框架的實(shí)現(xiàn)</p><p> 在系統(tǒng)的開(kāi)始,需要實(shí)現(xiàn)一個(gè)定制的UITabBarController的控件,并且每個(gè)UITableBarItem都關(guān)聯(lián)相對(duì)應(yīng)的模塊:</p><p> //自定義一個(gè)UITableBarItem,自己可以隨時(shí)改成自己想要的形狀
56、</p><p> - (void)viewDidLoad</p><p><b> {</b></p><p> [super viewDidLoad];</p><p> [self _createViewController];</p><p> [self _createTabB
57、arButton];</p><p><b> }</b></p><p> #pragma mark - 創(chuàng)建視圖</p><p> -(void)_createViewController</p><p><b> {</b></p><p> GiftView
58、Controller *gift = [[GiftViewController alloc]init];</p><p> UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController:gift];</p><p> gift.title = @"福利&
59、quot;;</p><p> gift.tabBarItem.image = [UIImage imageNamed:@"nav_gift_d"];</p><p> TYTHomeViewController *home = [[TYTHomeViewController alloc]init];</p><p> UINavigati
60、onController *navCtrl1 = [[UINavigationController alloc] initWithRootViewController:home];</p><p> ZhaoYXViewController *zhaoxy = [[ZhaoYXViewController alloc]init];</p><p> UINavigationContro
61、ller *navCtrl2 = [[UINavigationController alloc] initWithRootViewController:zhaoxy];</p><p> MyHomeViewController *myhome = [[MyHomeViewController alloc]init];</p><p> UINavigationController *
62、navCtrl3 = [[UINavigationController alloc] initWithRootViewController:myhome];</p><p> //將四個(gè)對(duì)象放入數(shù)組</p><p> NSArray *arrray = @[navCtrl1,navCtrl2,navCtrl,navCtrl3];</p><p> self.v
63、iewControllers = arrray;</p><p><b> }</b></p><p> #pragma mark - 創(chuàng)建標(biāo)簽欄按鈕</p><p> -(void)_createTabBarButton</p><p><b> {</b></p><
64、p> NSArray *normalName = @[@"nav_home_d",@"nav_game_d",@"nav_gift_d",@"nav_me_d"];</p><p> NSArray *selectedName = @[@"nav_home_s",@"nav_game_s&quo
65、t;,@"nav_gift_s",@"nav_me_s"];</p><p> NSArray *tabBarName = @[@"首頁(yè)",@"找游戲",@"福利",@"我"];</p><p> for (UIView *v in self.tabBar.subvi
66、ews)</p><p><b> {</b></p><p> [v removeFromSuperview];</p><p><b> }</b></p><p> UIImageView *tabView = [[UIImageView alloc] initWithFrame:se
67、lf.tabBar.bounds];</p><p> tabView.backgroundColor =RGB(247, 247, 247);</p><p> tabView.userInteractionEnabled = YES;</p><p> tabView.alpha = 0.9;</p><p> [self.tab
68、Bar addSubview:tabView];</p><p> CGFloat butWidth = WIDTH/normalName.count;</p><p> for (int i = 0; i < normalName.count; i ++)</p><p><b> {</b></p><p&g
69、t; UIButton *but = [UIButton buttonWithType:UIButtonTypeCustom];</p><p> but.frame = CGRectMake(butWidth *i, 0, butWidth, TABBAR);</p><p> but.tag = 100 + i;</p><p> [but setIma
70、ge:[UIImage imageNamed:normalName[i]] forState:UIControlStateNormal];</p><p> [but setImage:[UIImage imageNamed:selectedName[i]] forState:UIControlStateSelected];</p><p> //設(shè)置按鈕中圖片的位置</p>
71、;<p> [but setImageEdgeInsets:UIEdgeInsetsMake(SYRealValue(6), SYRealValue(29), TABBAR - 27, SYRealValue(29))];</p><p> [self.tabBar addSubview:but];</p><p> UILabel *tabLabel = [[UILa
72、bel alloc]initWithFrame:CGRectMake(butWidth * i +SYRealValue(29), TABBAR -25, butWidth , 23)];</p><p> tabLabel.textAlignment = NSTextAlignmentCenter;</p><p> if (i == 1) {</p><p>
73、; tabLabel = [[UILabel alloc]initWithFrame:CGRectMake(butWidth * i +SYRealValue(24), TABBAR -25, butWidth , 23)];</p><p> }else if (i == 3){</p><p> tabLabel = [[UILabel alloc]initWithFrame:C
74、GRectMake(butWidth * i +SYRealValue(33), TABBAR -25, butWidth, 23)];</p><p><b> }</b></p><p> tabLabel.tag = 200 + i;</p><p> tabLabel.text = tabBarName[i];</p>
75、<p> tabLabel.font = [UIFont systemFontOfSize:11];</p><p> tabLabel.textColor = [UIColor lightGrayColor];</p><p> tabLabel.textAlignment = NSTextAlignmentLeft;</p><p> [
76、self.tabBar addSubview:tabLabel];</p><p> [but addTarget:self action:@selector(butAction:) forControlEvents:UIControlEventTouchUpInside];</p><p> if (but.tag == 100)</p><p><b&
77、gt; {</b></p><p> but.selected = YES;</p><p> [but setTitleColor:[UIColor redColor] forState:UIControlStateNormal];</p><p> tabLabel.textColor = [UIColor redColor];</p&
78、gt;<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> #pragma mark - 選中按鈕響應(yīng)事件</p><p> -(void)butAction:(UIButton *)
79、sender</p><p><b> {</b></p><p> self.selectedIndex = sender.tag - 100;</p><p> sender.selected = !sender.selected;</p><p> for (int i = 100; i < 103
80、; i ++)</p><p><b> {</b></p><p> UIButton *button = (UIButton *)[self.tabBar viewWithTag:i];</p><p> button.selected = NO;</p><p> if (button.selected =
81、= NO)</p><p><b> {</b></p><p> UILabel *label = (UILabel *)[self.tabBar viewWithTag:100 + button.tag];</p><p> label.textColor = [UIColor lightGrayColor];</p>
82、<p><b> }</b></p><p><b> }</b></p><p> sender.selected = YES;</p><p> if (sender.selected == YES)</p><p><b> {</b></p&g
83、t;<p> UILabel *label = (UILabel *)[self.tabBar viewWithTag:sender.tag + 100];</p><p> label.textColor = [UIColor redColor];</p><p><b> }</b></p><p><b>
84、 }</b></p><p> //最后在AppDelegate初始化BaseTabBarController</p><p> BaseTabBarController *tabBar = [[BaseTabBarController alloc]init];</p><p> self.window.rootViewController = t
85、abBar;</p><p> 4.1首頁(yè)功能模塊實(shí)現(xiàn)</p><p> //首頁(yè)滑動(dòng)試圖創(chuàng)建</p><p> -(void)topScroll{</p><p> // 網(wǎng)絡(luò)加載 --- 創(chuàng)建帶標(biāo)題的圖片輪播器</p><p> cycleScrollView2 = [SDCycleScrollView
86、cycleScrollViewWithFrame:CGRectMake(SYRealValue(0), 0, SYRealValue(320), SYRealValue(125)) delegate:self placeholderImage:[UIImage imageNamed:@"Zhanweibig"]];</p><p> //判斷手機(jī)型號(hào),進(jìn)行屏幕適配</p>&l
87、t;p> // if (kWindowWidth == 414) {</p><p> // cycleScrollView2 = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(SYRealValue(0), 56, SYRealValue(320), SYRealValue(125)) delegate:self pl
88、aceholderImage:[UIImage imageNamed:@"placeholder"]];</p><p> // </p><p><b> // }</b></p><p> cycleScrollView2.pageControlAliment = SDCycleScrollVi
89、ewPageContolAlimentCenter;</p><p> cycleScrollView2.currentPageDotColor = [UIColor whiteColor];</p><p> // 自定義分頁(yè)控件小圓標(biāo)顏色</p><p> [uiew addSubview:cycleScrollView2];</p><
90、;p> dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{</p><p> cycleScrollView2.imageURLStringsGroup = toparray;</p><p><b>
91、 });</b></p><p><b> }</b></p><p> //中間分類視圖創(chuàng)建</p><p> -(void)centerView{</p><p> //獲得nib視圖數(shù)組</p><p> NSArray *nib = [[NSBundle mainBu
92、ndle]loadNibNamed:@"HomeView" owner:self options:nil];</p><p> tmpCustomView = [nib objectAtIndex:0];</p><p> tmpCustomView.frame = CGRectMake(0, SYRealValue(130), kTYTScreenWidth, 1
93、94.5);</p><p> NSLog(@"%@",NSStringFromCGRect(tmpCustomView.frame));</p><p> [uiew addSubview:tmpCustomView];</p><p><b> //給圖片綁定數(shù)據(jù)</b></p><p>
94、 [_Rankingbigimage sd_setImageWithURL:ranking[0]placeholderImage:[UIImage imageNamed:@"ZhanWei"]];</p><p> [_Rankingsamilloneimage sd_setImageWithURL:ranking[2]placeholderImage:[UIImage imageNamed
95、:@"ZhanWei"]];</p><p> [_Rankingsmailltwoimage sd_setImageWithURL:ranking[4]placeholderImage:[UIImage imageNamed:@"ZhanWei"]];</p><p> NSArray *big = [ranking objectAtIndex
96、DXY:1];</p><p> NSArray *onesamill = [ranking objectAtIndexDXY:3];</p><p> NSArray *twosmaill = [ranking objectAtIndexDXY:5];</p><p> [_Rankinglable setFont:[UIFont fontWithName:
97、@"Helvetica-Bold" size:15]];</p><p> //綁定游戲名稱,游戲大小,游戲介紹控件</p><p> _Ranbigname.text = [big objectAtIndexDXY:0];</p><p> _Ranbigsize.text = [big objectAtIndexDXY:1];</
98、p><p> _Ranbigrole.text = [big objectAtIndexDXY:2];</p><p> _Ranbigintroduce.text = [big objectAtIndexDXY:3];</p><p> //綁定游戲名稱,游戲大小,游戲介紹控件</p><p> _Ransamillonename.te
99、xt = [onesamill objectAtIndexDXY:0];</p><p> _Ransamillonerole.text = [onesamill objectAtIndexDXY:2];</p><p> _Ransamillonesize.text = [onesamill objectAtIndexDXY:1];</p><p> //綁
100、定游戲名稱,游戲大小,游戲介紹控件</p><p> _Ransamilltwoname.text = [twosmaill objectAtIndexDXY:0];</p><p> _Ransamilltworole.text = [twosmaill objectAtIndexDXY:2];</p><p> _Ransamilltwosize.text
101、 = [twosmaill objectAtIndexDXY:1];</p><p> //創(chuàng)建點(diǎn)擊游戲跳轉(zhuǎn)方法</p><p> [self image:_maxYxview];</p><p> [self image:_LittView];</p><p> [self image:_LittView1];</p>
102、<p><b> }</b></p><p> //爆笑視頻視圖創(chuàng)建</p><p> -(void)bottonview{</p><p> //獲得xib視圖數(shù)組</p><p> NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"
103、;BottonView" owner:self options:nil];</p><p> bottonview = [nib objectAtIndex:0];</p><p> //設(shè)置lable控件字體的粗細(xì)</p><p> [_BaoXiaoLable setFont:[UIFont fontWithName:@"Helveti
104、ca-Bold" size:15]];</p><p> bottonview.frame = CGRectMake(0, SYRealValue(329.5), kTYTScreenWidth, SYRealValue(210));</p><p> if (kWindowWidth == 414) {</p><p> bottonview.fr
105、ame = CGRectMake(0, SYRealValue(329.5)-57, kTYTScreenWidth, SYRealValue(210));</p><p><b> }</b></p><p> [uiew addSubview:bottonview];</p><p> [self imagevideo:_VideoI
106、mage];</p><p> //活動(dòng)禮包視圖創(chuàng)建</p><p> -(void)huodonglibao{</p><p><b> //獲得xib視圖</b></p><p> NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"HuoDong
107、View" owner:self options:nil];</p><p> tmpCustomView = [nib objectAtIndex:0];</p><p> tmpCustomView.frame = CGRectMake(0, SYRealValue(544.5), kTYTScreenWidth,SYRealValue(242));</p>
108、<p> if (kWindowWidth == 414) {</p><p> tmpCustomView.frame = CGRectMake(0, SYRealValue(544.5)-57, kTYTScreenWidth,SYRealValue(242));</p><p><b> }</b></p><p>
109、_giftactivitimage.userInteractionEnabled = YES;</p><p> [self imageviewtag:_giftactivitimage];</p><p> [uiew addSubview:tmpCustomView];</p><p> NSMutableArray *arrayyy = [NSMutab
110、leArray array];</p><p> arrayyy = [ActivityPackage objectAtIndexDXY:0];</p><p> if (arrayyy.count < 4) {</p><p> _giftactivitimage.image = [UIImage imageNamed:@"ZhanWei&q
111、uot;];</p><p> _Gifttext.text = @"";</p><p> _GiftTime.text = @"";</p><p> _Giftname.text = @"";</p><p><b> }else{</b><
112、/p><p> [_giftactivitimage sd_setImageWithURL:[arrayyy objectAtIndexDXY:0]];</p><p> _Gifttext.text = [arrayyy objectAtIndexDXY:1];</p><p> _GiftTime.text = [arrayyy objectAtIndexDX
113、Y:2];</p><p> _Giftname.text = [arrayyy objectAtIndexDXY:3];</p><p><b> }</b></p><p> _tagsting = [[NSString alloc]init];</p><p> _tagsting = @"rem
114、en";</p><p><b> }</b></p><p><b> }</b></p><p><b> //創(chuàng)建視圖列表</b></p><p> - (UITableView *)tableView {</p><p> i
115、f (!_tableView) {</p><p> _tableView.separatorStyle = NO;</p><p> self.automaticallyAdjustsScrollViewInsets = NO,</p><p> _tableView = [[UITableView alloc]initWithFrame:CGRectMak
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- ios游戲畢業(yè)論文
- 畢業(yè)論文 ios系統(tǒng)手機(jī)app象棋游戲
- 游戲畢業(yè)論文
- 兒童游戲畢業(yè)論文
- 基于ios平臺(tái)的游戲“五子棋”畢業(yè)論文最終版
- 游戲設(shè)計(jì)畢業(yè)論文
- 打字游戲畢業(yè)論文
- 體育游戲畢業(yè)論文
- ios掌上圖書館畢業(yè)論文
- 網(wǎng)絡(luò)游戲畢業(yè)論文
- 網(wǎng)絡(luò)游戲畢業(yè)論文
- 畢業(yè)論文 網(wǎng)絡(luò)小游戲
- 基于ios的手機(jī)應(yīng)用終端設(shè)計(jì)畢業(yè)論文
- 基于ios的手機(jī)應(yīng)用終端設(shè)計(jì)-畢業(yè)論文
- rpg游戲的設(shè)計(jì)畢業(yè)論文
- flansh在線小游戲畢業(yè)論文
- java打地鼠游戲畢業(yè)論文
- 黑白棋游戲畢業(yè)論文
- 畢業(yè)論文-- flash小游戲制作
- 數(shù)獨(dú)游戲畢業(yè)論文.doc
評(píng)論
0/150
提交評(píng)論