基于ios影視信息手機(jī)客戶端的設(shè)計與實現(xiàn)_第1頁
基于ios影視信息手機(jī)客戶端的設(shè)計與實現(xiàn)_第2頁
基于ios影視信息手機(jī)客戶端的設(shè)計與實現(xiàn)_第3頁
基于ios影視信息手機(jī)客戶端的設(shè)計與實現(xiàn)_第4頁
基于ios影視信息手機(jī)客戶端的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學(xué)科分類號0810本科學(xué)生畢業(yè)論文(設(shè)計)題目(中文)基于IOS影視信息手機(jī)客戶端的設(shè)計與實現(xiàn)(英文)THEDESIGNINGANDIMPLEMENTATIONOFPHONEMOVIEIMFORMATIONCLIENTMODULEBASEDONIOS姓名譚小清學(xué)號200908002213院(系)計算機(jī)與通信工程系專業(yè)、年級通信工程專業(yè)2009級指導(dǎo)老師李文(講師)2013年4月18日基于IOS影視信息手機(jī)客戶端的設(shè)計與實現(xiàn)摘要隨著信息網(wǎng)絡(luò)時代的快速發(fā)展,手機(jī)使用方式的多樣化,智能手機(jī)以及移動互聯(lián)網(wǎng)應(yīng)用的普及,不斷地改變著人們的生活方式。一款好的應(yīng)用軟件成為手機(jī)必備,本設(shè)計主要基于IOS平臺實現(xiàn)了IPHONE客戶端查看影視訊息的功能,通過此款應(yīng)用可以查看當(dāng)前最新影片的簡介、評論、評分等等。本設(shè)計采用XCODE開發(fā)工具,它具有可視化的編程界面、詳細(xì)的提示、以及完善的幫助文檔,軟件開發(fā)人員使用起來非常方便。本設(shè)計首先概要性地介紹了本文使用的關(guān)鍵技術(shù)、MVC模式等;然后給出模塊端總體分析與設(shè)計,包括系統(tǒng)的需求分析、系統(tǒng)設(shè)計要求、系統(tǒng)總體功能設(shè)計;其次用圖表加文字的方式對設(shè)計工作中的重點部分做出了詳細(xì)地闡述;最后具體描述了模塊的實現(xiàn)過程,并對關(guān)鍵技術(shù)的實現(xiàn),進(jìn)行了代碼解析?!娟P(guān)鍵詞】影視信息;IOS;IPHONE;JOSN;服務(wù)器THEDESIGNINGANDIMPLEMENTATIONOFPHONEMOVIEIMFORMATIONBASEDONIOSABSTRACTWITHTHERAPIDDEVELOPMENTOFINFORMATIONNETWORKERA,THEDIVERSIFICATIONOFMOBILEPHONEUSE,INTELLIGENTMOBILEPHONEANDTHEPOPULARITYOFMOBILEINTERNETAPPLICATIONS,CONSTANTLYCHANGINGPEOPLESWAYOFLIFEAGOODMOBILEPHONEAPPLICATIONSOFTWAREBECOMENECESSARY,THISDESIGNISMAINLYBASEDONTHEIOSPLATFORMOFTHEIPHONECLIENTTOVIEWVIDEOMESSAGEFUNCTION,THROUGHTHISAPPLICATIONCANVIEWTHELATESTMOVIEINTRODUCTION,REVIEW,SCORINGANDSOONTHISDESIGNUSESTHEXCODEDEVELOPMENTTOOLS,ITHASTHEVISUALPROGRAMMINGINTERFACE,DETAILEDTIPSANDPERFECTHELPDOCUMENTATION,ITISVERYCONVENIENTTOUSEFORSOFTWAREDEVELOPERSTHISPAPERFIRSTLYBRIEFLYINTRODUCESTHEKEYTECHNOLOGIESANDTHEMVCMODE,SECONDLYGIVESTHETOTALANALYSISANDDESIGNOFTERMINALMODULE,INCLUDINGSYSTEMREQUIREMENTSANALYSIS,SYSTEMDESIGNANDSYSTEMFUNCTIONDESIGNNEXTGIVESTHEFIGURESANDTEXTOFKEYPARTSDESIGNATLASTTHISPAPERPETENDSTHECONCRETEDESCRIPTIONOFTHEMODULEREALIZATIONPROCESS,ATTHESAMETIMETHEKEYTECHNIQUECODESAREPROVIDEDANDANALIZED【KEYWORDS】MOVIEIMFORMATION;IOS;IPHONE;JSON;SEVER目錄1緒論111本課題背景及意義112國內(nèi)外研究現(xiàn)狀113本課題的研究內(nèi)容214本章小結(jié)32IOS、開發(fā)語言、環(huán)境以及所用技術(shù)介紹321IOS簡介322開發(fā)語言O(shè)BJECTIVEC323開發(fā)環(huán)境424應(yīng)用程序框架以及設(shè)計模式525第三方類庫726本章小結(jié)83功能模塊設(shè)計1031需求分析1032系統(tǒng)模塊設(shè)計1133登錄模塊和手勢交互模塊流程圖設(shè)計11331用戶登錄模塊設(shè)計11332手勢交互設(shè)計12333多點觸摸交互設(shè)計1234詳細(xì)設(shè)計12341選擇的控件13342界面的繪制14343數(shù)據(jù)輸入與傳遞14344數(shù)據(jù)的保存和顯示15345自動登錄1535本章小結(jié)164功能模塊的具體實現(xiàn)1741數(shù)據(jù)請求1742網(wǎng)絡(luò)判斷1743數(shù)據(jù)的解析1844代理的實現(xiàn)1945算法描述與實現(xiàn)2046本章小結(jié)225數(shù)據(jù)測試2351影視信息列表頁數(shù)據(jù)測試2352具體內(nèi)容頁數(shù)據(jù)測試2453評論頁及回復(fù)頁數(shù)據(jù)的測試2554登錄測試2655本章總結(jié)276總結(jié)和展望2861總結(jié)2862展望28參考文獻(xiàn)29致謝301緒論隨著信息網(wǎng)絡(luò)時代的快速發(fā)展,手機(jī)使用方式的多樣化,智能手機(jī)以及移動互聯(lián)網(wǎng)應(yīng)用的普及,不斷地改變著人們的生活方式。一款好的應(yīng)用軟件成為手機(jī)必備,本設(shè)計主要基于IOS平臺實現(xiàn)了IPHONE客戶端查看影視訊息的功能,通過此款應(yīng)用可以查看當(dāng)前最新影片的簡介、評論、評分等等。本設(shè)計采用XCODE開發(fā)工具,它具有可視化的編程界面、詳細(xì)的提示、以及完善的幫助文檔,軟件開發(fā)人員使用起來非常方便。本設(shè)計首先概要性地介紹了本文使用的關(guān)鍵技術(shù)、MVC模式等;然后給出模塊端總體分析與設(shè)計,包括系統(tǒng)的需求分析、系統(tǒng)設(shè)計要求、系統(tǒng)總體功能設(shè)計;其次用圖表加文字的方式對設(shè)計工作中的重點部分做出了詳細(xì)地闡述;最后具體描述了模塊的實現(xiàn)過程,并對關(guān)鍵技術(shù)的實現(xiàn),進(jìn)行了代碼解析。11課題背景及意義當(dāng)今社會,手機(jī)已經(jīng)成為人們生活必不可少的一部分,而隨著科技的進(jìn)步,手機(jī)已經(jīng)不再僅僅是只是一個簡單的通話工具了,手機(jī)日趨于智能化、定制化、網(wǎng)絡(luò)化、娛樂多媒體化、安全性。伴隨著3G技術(shù)的日益成熟和3G手機(jī)的普及,手機(jī)網(wǎng)絡(luò)化更是成為引人注目的焦點,移動互聯(lián)網(wǎng)已經(jīng)成為未來發(fā)展的一個主流趨勢為業(yè)界所認(rèn)可,手機(jī)作為人們使用最廣泛的移動信息終端在未來移動互聯(lián)網(wǎng)中地位舉足輕重。未來手機(jī)將成為最主要的移動互聯(lián)網(wǎng)的使用終端,以后在移動互聯(lián)網(wǎng)實現(xiàn)的包羅萬象的服務(wù)都會以手機(jī)為載體。在此基礎(chǔ)上,以手機(jī)作為客戶端的網(wǎng)絡(luò)應(yīng)用程序開發(fā),引起越來越多人的關(guān)注。IPHONE手機(jī)軟件開發(fā)代表了未來開發(fā)領(lǐng)域的新方向,隨著IPHONE應(yīng)用需求的增加,只要IPHONE手機(jī)軟件開發(fā)應(yīng)用夠創(chuàng)意、夠?qū)嵱?,就能夠獲得豐厚的回報全球越來越多的開發(fā)者們投身其中,中國的IPHONE手機(jī)軟件開發(fā)者也不甘心置身局外,由此看來IPHONE軟件業(yè)的發(fā)展形勢非常樂觀,但是由于語言方面的限制,在中國,IPHONE的軟件開發(fā)工作還處于緩慢上升階段,這意味著市場非常龐大,完全有上升和提高的空間,并且,隨著人們生活節(jié)奏的提高,更加注重跟上時代腳步,完全不滿足于現(xiàn)在獲取影訊的方式,這無疑對信息的傳播方式提出了更高的要求。12國內(nèi)外的研究現(xiàn)狀手機(jī)與互聯(lián)網(wǎng)的融合形成的移動互聯(lián)網(wǎng)業(yè)務(wù)是與傳統(tǒng)互聯(lián)網(wǎng)以及傳統(tǒng)移動通信業(yè)務(wù)完全不同的新型業(yè)務(wù),移動互聯(lián)網(wǎng)催生的新型需求日益成為傳統(tǒng)IT與通信巨頭的藍(lán)海。隨著社會的不斷發(fā)展,各種各樣的手機(jī)軟件參與了人類的活動和社會活動,因此改善人和人之間的關(guān)系,使人對人的交流更為廣泛。還可以促進(jìn)大腦智力的發(fā)展,讓人們的思維更活躍。現(xiàn)今,人類己進(jìn)入了信息化網(wǎng)絡(luò)3G時代,手機(jī)的應(yīng)用范圍越來越廣泛。根據(jù)摩根士丹利的一份報告,未來5年移動互聯(lián)網(wǎng)的人數(shù)將超過傳統(tǒng)互聯(lián)網(wǎng)。移動互聯(lián)網(wǎng)是一塊巨大的金礦等待開采。IPHONE是蘋果公司推出的一款手機(jī)平臺,其特點是封閉平臺,由蘋果推出統(tǒng)一API,編程語言采用OBJECTC,C語言的編程效率還是相當(dāng)高。目前蘋果的IPHONE已經(jīng)取得很大成功,其推出的軟件商店模式也使得開發(fā)者大量參與進(jìn)來,極大豐富了IPHONE的功能,也使開發(fā)者有了致富機(jī)會,而在中國,移動、電信、聯(lián)通紛紛推出自己的應(yīng)用程序商店,并不只為效仿蘋果APPSTORE的商業(yè)模式,更多的是看到豐富的應(yīng)用程序在未來將成為用戶選擇運營商和手機(jī)平臺的決定因素;而對于開發(fā)者來說,手機(jī)軟件商店開發(fā)者分成模式將成為他們的另一個金礦。北京時間2012年3月15日下午消息,蘋果周三發(fā)布的文件顯示,APPSTORE應(yīng)用商店每周收到的IPHONE和IPAD應(yīng)用上架申請超過26萬次,全年約為130萬次2。自從2008年上線以來,APPSTORE收到的應(yīng)用申請數(shù)量已經(jīng)大幅增長。蘋果2009年向美國聯(lián)邦通訊委員會FCC透露,每周收到的申請為8500次,2010年達(dá)到15萬次,約為現(xiàn)在的一半3。事實上,自誕生以來,蘋果應(yīng)用商店幾乎是以幾何級的規(guī)模增長。蘋果應(yīng)用商店2008年7月上線,僅用了2個月的時間就突破了1億次下載。去年10月,APPSTORE應(yīng)用商店的下載次數(shù)超過180億次。不過光鮮亮麗的數(shù)字背后,卻也隱含著高風(fēng)險、高成本的危機(jī),IPHONE最大的問題,這是一個封閉的系統(tǒng),代碼的不開源,從操作系統(tǒng)到開發(fā)語言的獨具一幟,這注定了開發(fā)人員不多,相對于其他操作平臺開發(fā)人員漸現(xiàn)后勁不足。13本論文的研究內(nèi)容本文深入分析了課題的背景及意義、IPHONE應(yīng)用的現(xiàn)狀和發(fā)展趨勢。在前人的研究基礎(chǔ)上對影視信息手機(jī)客戶端進(jìn)行了重構(gòu)和設(shè)計。本軟件在通過對服務(wù)器數(shù)據(jù)的解析,實現(xiàn)了各個對全國影訊的展現(xiàn),實現(xiàn)對影片簡介、評分、評論等等的查看功能。詳細(xì)功能的設(shè)計和實現(xiàn)。14本章小結(jié)本章中介紹了IPHONE軟件開發(fā)的課題背景及意義,闡明了該應(yīng)用軟件開發(fā)的國內(nèi)外研究現(xiàn)狀,描述了本論文的研究內(nèi)容及本論文的結(jié)構(gòu)。2IOS、開發(fā)語言、環(huán)境以及所用技術(shù)介紹21IOS簡介IOS最初是設(shè)計在IPHONE上的操作系統(tǒng),蘋果公司于2007年1月9日的MACWORLD大會上公布了這個系統(tǒng),并命名為IPHONEOS,但隨著此系統(tǒng)在IPODTOUCH、IPAD以及APPLETV等蘋果產(chǎn)品上的廣泛應(yīng)用,蘋果公司于2010年6月7日WWDC大會上將其改名為IOS。據(jù)CANALYS的數(shù)據(jù)顯示,截止到2011年11月,IOS占據(jù)了全球智能手機(jī)系統(tǒng)市場份額的30,在美國的市場占有率更是達(dá)到了43。隨著ANDRIOD開源操作系統(tǒng)的異軍突起以及WINDOWSPHONE的發(fā)力,IOS市場份額正被一點點的蠶食,但I(xiàn)OS設(shè)備的利潤率高的驚人,以智能手機(jī)為例,IPHONE的利潤額占到整個智能手機(jī)利潤額的80,受益于此,蘋果的市值也達(dá)到了5000億美元。IOS操作采用的是多點觸控直接操作,控制方法包括滑動、輕觸屏幕和圖標(biāo)及按鍵。操作有滑動、輕按、縮小及放大。此外,IOS移動設(shè)備中還內(nèi)置了加速器,使得旋轉(zhuǎn)IOS設(shè)備時,界面也可以得到旋轉(zhuǎn),這也使得IPHONE等便攜設(shè)備更便于使用。自3GS開始,IPHONE裝備有陀螺儀,這使得IPHONE有了重力感應(yīng),游戲效果更加的突出。屏幕的下方是HOME鍵,點按回到主界面。底部是DOCK,可安放四個使用者最經(jīng)常使用的程序的圖標(biāo)。屏幕最上方是狀態(tài)欄,顯示一些有關(guān)資訊如時間、電池電量和訊號強(qiáng)度等。其余的屏幕用于顯示當(dāng)前的應(yīng)用程序。啟動程序,只需點按該程序的圖標(biāo),點按屏幕下方的HOME鍵即退出應(yīng)用程序。在IPHONE30及后續(xù)版本中,及時應(yīng)用程序退出,當(dāng)?shù)谌杰浖盏搅诵碌挠嵪r,蘋果公司的服務(wù)器將把這些通知推送至IPHONE或IPODTOUCH上(不管它是否正在運行中)。22開發(fā)語言O(shè)BJECTIVECOBJECTIVEC,也通常被寫作OBJC,是一種擴(kuò)充C的面向?qū)ο缶幊陶Z言,主要用于MACOSX和GNUSTEP這兩個使用OPENSTEP標(biāo)準(zhǔn)的系統(tǒng)。OBJECTIVEC最開始并不支持垃圾回收,因為垃圾回收有漫長的“死亡時間”,會導(dǎo)致整個系統(tǒng)失去功用。但自XCODE40開始,支持自動釋放,也就是ARCAUTOMATICREFERENCECOUNTING機(jī)制,不需要用戶手動去RELEASE每一個對象,編譯器會在編譯期間自動幫你添加那些以前你經(jīng)常寫的NSOBJECTRELEASE。OBJECTIVEC和C有很多不同之處,OBJECTIVEC不支持運算符重載,也只允許對象單繼承,但其引入的CATEGORIES和PROTOCOLS可以提供很多多重繼承的好處。很多常見的編譯時的性能優(yōu)化方法都不能應(yīng)用于OBJC,比如內(nèi)聯(lián)函數(shù)。23開發(fā)環(huán)境(1)XCODE工具XCODE是APPLE的開發(fā)工具套件,支持項目管理、編輯代碼、構(gòu)建可執(zhí)行程序、代碼級調(diào)試、代碼的版本管理、性能調(diào)優(yōu)等等。這個套件的核心是XCODE應(yīng)用本身,它提供了基本的源代碼開發(fā)環(huán)境。開發(fā)者可以在XCODE中創(chuàng)建新項目,開始新的IPHONE應(yīng)用程序。一個項目管理應(yīng)用程序所有的信息,包含源代碼、編譯設(shè)置和把所有文件整合到一起的編譯規(guī)則。XCODE項目的核心是項目窗口,開發(fā)者可以通過該窗口快速訪問應(yīng)用程序的所有關(guān)鍵元素。組和文件列表管理項目文件,包括了源代碼文件和編譯后的目標(biāo)文件。工具欄提供了常用的工具和命令,詳細(xì)資料面板用來設(shè)置項目的工作區(qū)域,項目窗口的其他部分可以提供更多的項目信息。項目窗口組和文件列表詳細(xì)資料面板XCODE有一個高級的代碼編輯器,它提供代碼補(bǔ)全、語法高亮、代碼隱藏(臨時隱藏代碼塊),還有錯誤、警告和說明的內(nèi)置注釋。XCODE環(huán)境中提供了一些默認(rèn)的設(shè)置和用戶環(huán)境設(shè)置。并且需要立即幫助文檔,XCODE搜索助手提供了上下文文檔,同時開發(fā)者可以在幫助文檔窗口中瀏覽和搜索相關(guān)信息。(2)SIMULATOR模擬器IPHONESIMULATOR是IPHONESDK中頗為有用的一個工具,無需使用實際的IPHONE/IPODTOUCH就可以測試應(yīng)用程序。通常不需要直接啟動IPHONESIMULATOR它在XCODE運行或是調(diào)試應(yīng)用程序時會自動啟動。XCODE會自動將應(yīng)用程序安裝到IPHONESIMULATOR上。開發(fā)者在XCODE創(chuàng)建應(yīng)用程序,在編譯時需要選擇IPHONE模擬器還有設(shè)備。IPHONE模擬器提供了一個本地的應(yīng)用測試環(huán)境。在IPHONE模擬器通過測試后,可以用XCODE編譯并運行到與計算機(jī)相連接的IPHONE上。在IPHONE上的運行提供了最全面的測試環(huán)境,XCODE可以在設(shè)備測試時用內(nèi)置的調(diào)試器跟蹤代碼。(3)INTERFACEBUILDER在INTERFACEBUILDER中創(chuàng)建的NIB文件包含了UIKIT需要在應(yīng)用中創(chuàng)建相同對象的所有信息。在運行時加載NIB文件,創(chuàng)建它們的運行時版本,設(shè)置與INTERFACEBUILDER中相同的屬性。它也使用連接信息,建立新建對象和應(yīng)用程序中其他對象之間的聯(lián)系。連接信息提供了代碼與NIB文件的對象連接關(guān)系,同時也提供了對象與用戶動作之間的聯(lián)系??偟膩碚f,在創(chuàng)建應(yīng)用程序圖形用戶界面時,使用INTERFACEBUILDER可以節(jié)約大量時間。INTERFACEBUILDER擺脫了手工編寫代碼創(chuàng)建、設(shè)置和定位界面對象,并且INTERFACEBUILDER是一個可視的編輯器,開發(fā)者可以清楚地看到在運行時界面效果。(4)INSTRUMENTS為了確保軟件具有最佳的用戶體驗,INSTRUMENTS可以分析IPHONE應(yīng)用在模擬器或真實設(shè)備上運行時的性能。INSTRUMENTS將用時間軸圖表的形式表現(xiàn)運行應(yīng)用程序時的各種數(shù)據(jù),包括內(nèi)存消耗、磁盤活動、網(wǎng)絡(luò)活動和圖形表現(xiàn)等。時間軸視圖表征了不同類型的應(yīng)用程序信息,可以收集應(yīng)用程序的全部行為,而不是某個特定區(qū)域的行為。除時間軸視圖外,INSTRUMENTS也提供工具幫助開發(fā)者分析運行時應(yīng)用程序的行為。例如,INSTRUMENTS窗口可以保存多個運行時數(shù)據(jù),開發(fā)者可以觀察應(yīng)用程序的行為哪些需要改進(jìn)或哪些需要重寫,開發(fā)者可以保存數(shù)據(jù)到INSTRUMENTS文檔中,也可以隨時打開這些數(shù)據(jù)。24應(yīng)用程序框架以及設(shè)計模式MVC模型視圖控制器是XEROXPARC在八十年代為編程語言SMALLTALK80發(fā)明的一種軟件設(shè)計模式,至今已被廣泛使用5。最近幾年被推薦為SUN公司J2EE平臺的設(shè)計模式,并且受到越來越多的使用IOS和PHP的開發(fā)者的歡迎。MVC是用于拆分GUI應(yīng)用程序的邏輯方法。MVC是一個設(shè)計模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。MVC模型將所有功能能劃分為3種,如圖21所示。(1)模型模型對象代表特別的知識和專業(yè)技能,它們負(fù)責(zé)保有應(yīng)用程序的數(shù)據(jù)和定義操作數(shù)據(jù)的邏輯。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個模型能為多個視圖提供數(shù)據(jù)由于應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復(fù)性。(2)視圖視圖對象知道如何顯示應(yīng)用程序的模型數(shù)據(jù),而且可能允許用戶對其進(jìn)行編輯。視圖是用戶看到并與之交互的界面。如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。MVC一個大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。圖21MVC模式設(shè)計VIEW層用戶界面信息接受數(shù)據(jù)更新請求把用戶輸入數(shù)據(jù)傳給CONTRLERCONTRLER層接受用戶請求調(diào)用模型響應(yīng)用戶請求選擇視圖顯示響應(yīng)的結(jié)果MODEL層代表應(yīng)用程序狀態(tài)響應(yīng)狀態(tài)查詢處理業(yè)務(wù)流程通知VIEW業(yè)務(wù)狀態(tài)更新業(yè)務(wù)處理選擇VIEW狀態(tài)查詢用戶請求(3)控制器控制器對象是應(yīng)用程序的視圖對象和模型對象之間的協(xié)調(diào)者??刂破鹘邮苡脩舻妮斎氩⒄{(diào)用模型和視圖去完成用戶的需求。控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后用確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)。MVC最重要的一點是多個視圖能共享一個模型,正如我所提及的,現(xiàn)在需要用越來越多的方式來訪問你的應(yīng)用程序。對此,其中一個解決之道是使用MVC,無論你的用戶想要FLASH界面或是WAP界面;用一個模型就能處理它們。由于你已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,所以你可以最大化的重用你的代碼了。由于模型返回的數(shù)據(jù)沒有進(jìn)行格式化,所以同樣的構(gòu)件能被不同界面使用。例如,很多數(shù)據(jù)可能用HTML來表示,但是它們也有可能要用MACROMEDIAFLASH和WAP來表示。模型也有狀態(tài)管理和數(shù)據(jù)持久性處理的功能。因為模型是自包含的,并且與控制器和視圖相分離,所以很容易改變你的應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。如果你想把你的數(shù)據(jù)庫從MYSQL移植到ORACLE,或者改變你的基于RDBMS數(shù)據(jù)源到LDAP,只需改變你的模型即可。一旦你正確的實現(xiàn)了模型,不管你的數(shù)據(jù)來自數(shù)據(jù)庫或是LDAP服務(wù)器,視圖將會正確的顯示它們。由于運用MVC的應(yīng)用程序的三個部件是相互對立,改變其中一個不會影響其它兩個,所以依據(jù)這種設(shè)計思想你能構(gòu)造良好的松偶合的構(gòu)件。對我來說,控制器的也提供了一個好處,就是可以使用控制器來聯(lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶的需求選擇模型進(jìn)行處理,然后選擇視圖將處理結(jié)果顯示給用戶。設(shè)計模式(1)工廠模式類工廠方法的實現(xiàn)是為了向客戶提供方便,它們將分配和初始化合在一個步驟中,返回被創(chuàng)建的對象,并進(jìn)行自動釋放處理6。工廠方法可能不僅僅為了方便使用。它們不但可以將分配和初始化合在一起,還可以為初始化過程提供對象的分配信息。(2)單利模式FOUNDATION和APPLICATIONKIT框架中的一些類只允許創(chuàng)建單件對象,即這些類在當(dāng)前進(jìn)程中的唯一實例。舉例來說,NSFILEMANAGER和NSWORKSPACE類在使用時都是基于進(jìn)程進(jìn)行單件對象的實例化。當(dāng)向這些類請求實例的時候,它們會向您傳遞單一實例的一個引用,如果該實例還不存在,則首先進(jìn)行實例的分配和初始化。單件對象充當(dāng)控制中心的角色,負(fù)責(zé)指引或協(xié)調(diào)類的各種服務(wù)。(3)觀察者模式在IOS開發(fā)中,通知機(jī)制依靠觀察者模式得以實現(xiàn)。通知機(jī)制是一個中心對象為所有觀察者提供變更通知,觀察者模式中SUBJECT對象,又可稱目標(biāo)對象,是通知的發(fā)布者,又是被觀察者。提供注冊和取消注冊的方法;OBSERVER對象,又可稱為觀察者,是通知的訂閱者。OBSERVER類中,相識SUBJECT,以達(dá)到能夠接收通知。25第三方類庫(1)通信協(xié)議請求ASIHTTPREQUEST使用IOSSDK中的HTTP網(wǎng)絡(luò)請求API,相當(dāng)?shù)膹?fù)雜,調(diào)用很繁瑣,ASIHTTPREQUEST就是一個對CFNETWORKAPI進(jìn)行了封裝,并且使用起來非常簡單的一套API,用OBJECTIVEC編寫,可以很好的應(yīng)用在MACOSX系統(tǒng)和IOS平臺的應(yīng)用程序中。ASIHTTPREQUEST適用于基本的HTTP請求,和基于REST的服務(wù)之間的交互。(2)TOUCHJSON解析COCOS2DFORIPHONE是開源2D引擎中特性最完備的一個。TOUCHJSON的使用屬于不想在一個比較完全的OBJECTIVEC環(huán)境中添加C代碼,所以不使用JSONCPP來配合COCOS2D,何況COCOS2D的模板工程中本來就帶有TOUCHJSON了。另外,因為TOUCHJSON用OBJECTIVEC完成,解析后也是個NSDICTIONARY的對象所以與OBJECITVEC的對象組合使用會更加自然一些。(3)SDWEBIMAGE圖片庫是一個支持網(wǎng)絡(luò)圖像遠(yuǎn)程異步下載的UIIMAGEVIEW的類別。具有緩存管理、異步下載、同一個URL下載次數(shù)控制和優(yōu)化等特征。26本章小結(jié)本章主要是深入研究了本系統(tǒng)的開發(fā)工具XCODE,介紹了一些編輯器模擬器的使用方法和技巧。然后介紹系統(tǒng)MVC框架,指出框架在項目中的應(yīng)用,接著分別介紹了本系統(tǒng)用到的設(shè)計模式和第三方庫。3功能模塊設(shè)計31需求分析(1)首頁頁面主體內(nèi)容構(gòu)成大頭圖、圖文列表。而在大頭圖中由圖片影評標(biāo)題構(gòu)成。圖文列表中,單條影評的展示方式頭像用戶名評分影片評分分值標(biāo)題摘要影片海報。圖文列表排序規(guī)則同WEB端。先首頁影評,再新片熱評列表。圖文列表處用戶初次進(jìn)入,默認(rèn)顯示20條,在頂部的時候向下拖動,刷新當(dāng)前頁面,在頁面底部向上拖動展開顯示更多20條。手指在屏幕上下滑動,可以查看影視頻道的所有內(nèi)容。點擊頭圖,進(jìn)入頭圖內(nèi)容頁。頁面自右向左顯示。點擊單條圖文列表影評,該條處于選中的狀態(tài),進(jìn)入影評內(nèi)容頁。頁面自右向左顯示。頂部導(dǎo)航處中間顯示頻道名稱時光網(wǎng)影評。底部導(dǎo)航處依次顯示首頁、新聞、影評、電影院、更多。選中效果在“影評”。(2)具體內(nèi)容頁頁面主體內(nèi)容構(gòu)成頭像、標(biāo)題、用戶名、評分電影、評分分值、發(fā)表時間、海報、正文。頂部導(dǎo)航處中間顯示頻道名稱時光網(wǎng)影評。左側(cè)顯示返回按鈕。底部操作區(qū)處依次顯示評論ICON(有評論的ICON右下角顯示評論數(shù)量)、收藏、分享。其中,收藏和分享,未登錄用戶點擊進(jìn)入登錄頁。頁面自下向上移入。點擊縮略圖,浮層顯示大圖。頁面可隨手指上下滑動。手指點擊屏幕的非縮略圖區(qū)域,全屏顯示頁面主體內(nèi)容,再點擊,回到正常顯示。支持多點觸摸,字體變大變小,縮略圖大小不變。用戶左右滑動可切換上一篇/下一篇電影,點擊評論ICON進(jìn)入查看評論頁,頁面自右向左顯示。(3)查看評論頁頁面主體內(nèi)容構(gòu)成圖文列表。圖文列表中,單條影評的展示方式頭像用戶名微影評。圖文列表處用戶初次進(jìn)入,默認(rèn)顯示20條,在頂部的時候向下拖動,刷新當(dāng)前頁面,在頁面底部向上拖動展開顯示更多20條。手指在屏幕上下滑動,可以查看影評頻道的所有內(nèi)容。點擊表格,彈出回復(fù)按鈕、進(jìn)入發(fā)表評論頁面,頁面自右向左顯示。完成時將以另外一種形式顯示于回復(fù)當(dāng)前人表格下,頁面自右向左顯示。頂部導(dǎo)航處中間顯示頻道名稱查看評論。左邊顯示返回按鈕,點擊返回按鈕返回評論頁內(nèi)容,頁面自右向左顯示。底部導(dǎo)航處顯示寫評論導(dǎo)航條編輯區(qū),點擊編輯區(qū)同樣進(jìn)首頁具體內(nèi)容頁轉(zhuǎn)發(fā)評論收藏全屏分享寫評論回復(fù)入發(fā)表評論頁面,頁面自右向左顯示完成時將以同種形式顯示于表格最下方,頁面自右向左顯示。(4)發(fā)表評論頁頁面主體內(nèi)容構(gòu)成編輯區(qū)。圖文列表處用戶初次進(jìn)入,編輯區(qū)顯示默認(rèn)文字,且關(guān)聯(lián)鍵盤顯示。點擊編輯區(qū),默認(rèn)文字消失,進(jìn)入編輯狀態(tài)。頂部導(dǎo)航處中間顯示頻道名稱發(fā)表評論。左邊顯示取消按鈕,點擊取消按鈕不保存評論內(nèi)容回查看評論頁,頁面自右向左顯示。左邊顯示提交按鈕,點擊提交按鈕保存評論內(nèi)容回查看評論頁,頁面自右向左顯示。32系統(tǒng)模塊設(shè)計程序的整體功能模塊,里面包含數(shù)據(jù)判斷、功能選擇、輸出模塊等。數(shù)據(jù)判斷是從COOKIE中取值。具體的模塊設(shè)計如圖31所示。圖31設(shè)計結(jié)構(gòu)圖33登錄模塊和手勢交互模塊流程圖設(shè)計331用戶登錄模塊設(shè)計具體內(nèi)容頁中,需要判斷是否用戶已經(jīng)登錄,如果登錄則可以則從COOKIE中取得用戶信息,將評論內(nèi)容直接以用戶名發(fā)送出去,而未登錄時只能匿名發(fā)表,而回復(fù)別人的評論則必須登錄,流程圖如圖32所示。用戶登錄COOKIE中是否有值登錄成功進(jìn)行用戶評論和回復(fù)NY圖32登錄判斷流程圖332手勢交互設(shè)計手勢9(GESTURE)是指從用一個或多個手指接觸屏幕開始,直到手指離開屏幕為止所發(fā)生的所有事件。由于手勢是在事件之內(nèi)傳遞到系統(tǒng)的,然后事件會傳遞到響應(yīng)者鏈(RESPONDERCHAIN)。如果第一個響應(yīng)者不處理某個特殊事件(如某個手勢),則它會將該事件傳遞到響應(yīng)者鏈的下一級。如果該鏈中的下一個對象響應(yīng)此特殊事件,則它通常會處理該事件,這將停止該事件沿著響應(yīng)者鏈向前傳遞。如圖33所示。333多點觸摸交互設(shè)計很明顯,觸摸(TOUCH)是指手指放到IPHONE屏幕上,手勢中涉及的觸摸數(shù)量等于同時位于屏幕上的手指數(shù)量,當(dāng)觸目數(shù)量為1在進(jìn)行移動時,或觸目數(shù)量大于1時形成多點觸目,如圖34所示。34詳細(xì)設(shè)計詳細(xì)設(shè)計是對整個程序的整體設(shè)計,它包含界面的設(shè)計、數(shù)據(jù)結(jié)構(gòu)的設(shè)計、功能過程的顯示等。觸摸開始單擊移動捏合或移動形成多點觸摸單指多指開始第一響應(yīng)者是否響應(yīng)第N響應(yīng)者是結(jié)束否是否是否響應(yīng)否圖33手勢響應(yīng)鏈流程圖圖34多點觸摸結(jié)構(gòu)圖341選擇的控件UILABEL顯示文字的控件,它能設(shè)置要顯示的文字的顏色,大小,格式等相關(guān)屬性。UIIMAGEVIEW顯示圖片的控件,根據(jù)回來的圖片地址,能從緩沖里或者沙盒中選取要顯示的圖片,它能設(shè)置要顯示的圖片的顏色,大小,格式等相關(guān)屬性。UITEXTVIEW主要用來對文字的輸入,當(dāng)響應(yīng)它時自動彈出鍵盤,一行輸入滿時可以自動換行。UIBUTTON在IPHONE上主要是一個按鈕,該按鈕能響應(yīng)用戶一切對其操作的單擊、雙擊、長按事件,可以對其設(shè)置響應(yīng)函數(shù)。UITABLEVIEW在IPHONE上一個表格視圖是一維的,自頂向下的條目清單,可選的分為多個區(qū)域,區(qū)域?qū)嶋H上把清單變?yōu)槎S數(shù)據(jù)結(jié)構(gòu),每個區(qū)域有可變數(shù)目的條目,因此表格里某個指定的條目由它所在區(qū)域和所在區(qū)域的行(ROW)來決定。UIWEBVIEW在IPHONE上用來顯示網(wǎng)站要顯示的信息,開發(fā)者可以重寫網(wǎng)頁數(shù)據(jù)的格式,也可以用JS返回所要用到的數(shù)據(jù)。342界面的繪制界面區(qū)域的視圖繪制較為簡單。只需要根據(jù)當(dāng)前需求分析,來對每一個也頁面進(jìn)行繪制。先生成一個控制器(UIVIEWCONTROLLER),同時可以生成一個VIEWCONTROLLERXIB然后將要用到的控件拖入相應(yīng)的位置,形成插座控件,待請求完成時加載數(shù)據(jù)。如果沒有生成NIB文件,則在VIEWCONTROLLERM中用代碼實現(xiàn)控件的生成,再從源視圖像位圖中選擇適當(dāng)?shù)膮^(qū)域?qū)⑵涮砑拥絻?nèi)存位圖中,當(dāng)所有這些圖像方塊都繪制到內(nèi)存位圖后,再一次性地將整體圖像從內(nèi)存位圖拷貝到屏幕去。繪制流程如圖35所示。343數(shù)據(jù)輸入與傳遞該軟件通過用戶對界面的操作,實現(xiàn)數(shù)據(jù)的傳遞,而在此項目中當(dāng)點擊影評頁首頁頭圖和列表時,保存一個當(dāng)前點擊影評的ID將及傳至影評詳情頁。而詳情頁則根據(jù)此ID進(jìn)行數(shù)據(jù)請求,將解析后的數(shù)據(jù)顯示到當(dāng)前頁面,而在詳情頁中,點擊圖片用JS導(dǎo)出圖片鏈接,將此鏈接對應(yīng)的圖片從緩存中取出,對其進(jìn)行操作,而點擊詳情頁下部導(dǎo)航條時則從COOKIE中取取用戶數(shù)據(jù),看是否登錄,然后根據(jù)登錄狀態(tài),進(jìn)行邏輯分析和判斷。是否生成NIB文件將控件加入XIB中完成YN在控制器中加入控件開始生成控制器圖35界面繪制流程圖344數(shù)據(jù)的保存和顯示前面實現(xiàn)的眾多功能都是圍繞著位置這一關(guān)鍵來運作的,數(shù)據(jù)的保存分為兩種,一種是臨時緩存,臨時緩存很簡單,SDK封裝好的模塊我們可以直接拿來用,在數(shù)據(jù)請求完成時可以直接保存到緩存區(qū)。另一種則是保存到沙盒路徑既永久保存,此時根據(jù)用戶名在沙盒中創(chuàng)建一個文件,用單利模式創(chuàng)建一個用戶數(shù)據(jù)模型,每次要用時從數(shù)據(jù)模型中讀取數(shù)據(jù),當(dāng)修改用戶信息時則對其進(jìn)行保存。而數(shù)據(jù)的顯示我們只需將從文件中讀到的數(shù)據(jù),或者是從緩存中取到的數(shù)據(jù)加到相應(yīng)的控件數(shù)據(jù)上,控件將顯示出我們所設(shè)計的效果。345自動登錄自動登錄是由軟件自動完成的。用戶在上次登錄程序中登錄了賬戶而沒有對其進(jìn)行注銷而直接退出程序,這時程序會自動將未退出的賬號記錄下來保存在本地,而當(dāng)下次啟動此應(yīng)用時,先從文件中去讀數(shù)據(jù),看上次用戶退出時是否處在登錄狀態(tài),若是將用戶名和密碼取出,自動請求登錄接口,完成自動登錄。35本章小結(jié)本章主要是對各功能模塊的需求做了詳細(xì)的分析。接著劃分系統(tǒng)的模塊,對用戶登錄做了詳細(xì)的分析,設(shè)計智能手機(jī)的多點觸摸,對系統(tǒng)的各個功能頁面進(jìn)行詳細(xì)構(gòu)造,完成UI圖的繪制及數(shù)據(jù)的顯示及保存設(shè)置,完成自動登錄的邏輯設(shè)計。4功能模塊的具體實現(xiàn)41數(shù)據(jù)請求ASIHTTPREQUES是一款極其強(qiáng)勁的HTTP訪問開源項目。而數(shù)據(jù)的請求可以分為同步和異步請求,同步意為著線程阻塞,在主線程中使用此方法會使應(yīng)用停住而不響應(yīng)任何用戶事件10。所以,在應(yīng)用程序設(shè)計時,大多被用在專門的子線程增加用戶體驗,或用異步請求代替。異步請求更加精準(zhǔn)豐富的控制。異步請求的好處是不阻塞當(dāng)前線程,但相對于同步請求略為復(fù)雜,至少要添加兩個回調(diào)方法來獲取異步事件不過可以設(shè)置在隊列中,同步請求的連接數(shù)。往隊列里添加的請求實例數(shù)大于MAXCONCURRENTOPERATIONCOUNT時,請求實例將被置為等待,直到前面至少有一個請求完成并出列才被放到隊列里執(zhí)行。IBACTIONGRABURLINTHEBACKGROUNDIDSENDERIFSELFQUEUESELFSETQUEUENSOPERATIONQUEUEALLOCINITAUTORELEASENSURLURLNSURLURLWITHSTRING“HTTP/ALLSEEINGICOM“ASIHTTPREQUESTREQUESTASIHTTPREQUESTREQUESTWITHURLURLREQUESTSETDELEGATESELFREQUESTSETDIDFINISHSELECTORSELECTORREQUESTDONEREQUESTSETDIDFAILSELECTORSELECTORREQUESTWENTWRONGSELFQUEUEADDOPERATIONREQUEST42網(wǎng)絡(luò)判斷網(wǎng)絡(luò)判斷是指用戶能否連接到網(wǎng)絡(luò)進(jìn)行請求數(shù)據(jù),為了保證數(shù)據(jù)的可靠性,需要對用戶進(jìn)行網(wǎng)絡(luò)連接失敗和超時進(jìn)行判斷,當(dāng)進(jìn)行數(shù)據(jù)請求時,如果請求失敗,服務(wù)器會返回一個錯誤信息ERROR,而IOSSDK對請求這一塊進(jìn)行了很好的封裝,返回一個結(jié)構(gòu)體,而其中的1則代表網(wǎng)絡(luò)連接失敗,2則是連接30秒超時,代碼如下DEFINENET_ERROR_CONNET_FAILURE“網(wǎng)絡(luò)連接失敗,請檢查網(wǎng)絡(luò)“DEFINENET_ERROR_TIME_OUT“網(wǎng)絡(luò)連接超時“VOIDREQUEREQUESTWENTWRONGASIHTTPREQUESTREQUESTNSERRORERROR_HTTPREQUESTERRORSELFNOTIFYDELEGATEWITHNILANDERRORERRORNSINTEGERCODEERRORCODESWITCHCODECASEASICONNECTIONFAILUREERRORTYPE/1COMMUTILSSHOWMESSAGEWITHSTRNET_ERROR_CONNET_FAILUREBREAKCASEASIREQUESTTIMEDOUTERRORTYPE/2COMMUTILSSHOWMESSAGEWITHSTRNET_ERROR_TIME_OUTBREAKDEFAULTBREAK43數(shù)據(jù)的解析用戶請求回來的數(shù)據(jù)都是JSON字符串,JSON可以表示數(shù)組和復(fù)雜的對象,而不僅僅是鍵和值的簡單列表。JSON可以將JAVASCRIPT對象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個字符串,或者在異步應(yīng)用程序中將字符串從WEB客戶機(jī)傳遞給服務(wù)器端程序,用戶只有經(jīng)過解析后才能使用,關(guān)鍵代碼如下DEFINERELEASE_SAFELY_POINTERIF_POINTER_POINTERRELEASE_POINTERNIL/安全釋放數(shù)據(jù)模型解析;VOIDREQUESTDONEASIHTTPREQUESTREQUESTNSERRORERRORNILNSDATADATA_HTTPREQUESTRESPONSEDATA/請求回來數(shù)據(jù)CJSONDESERIALIZERJSONPARSERCJSONDESERIALIZERDESERIALIZERNSARRAYREVIEWJSONARRAYJSONPARSERDESERIALIZEASARRAYDATAERRORIFERRORRETURNNSMUTABLEARRAYRESPNSMUTABLEARRAYALLOCINITFORNSDICTIONARYREVIEWDICTINREVIEWJSONARRAYTREVIEWREVIEWTREVIEWALLOCINITREVIEWRATINGREVIEWDICTOBJECTFORKEY“RATING“DOUBLEVALUEREVIEWIDREVIEWDICTOBJECTFORKEYKJSON_IDINTEGERVALUEREVIEWIMAGEREVIEWDICTOBJECTFORKEYKJSON_IMAGEREVIEWNICKNAMEREVIEWDICTOBJECTFORKEYKJSON_NICKNAMEREVIEWUSERIMAGEREVIEWDICTOBJECTFORKEYKJSON_USERIMAGEREVIEWTITLEREVIEWDICTOBJECTFORKEYKJSON_TITLEREVIEWSUMMARYREVIEWDICTOBJECTFORKEYKJSON_SUMMARYRELEASE_SAFELYREVIEWSELFNOTIFYDELEGATEWITHRESPANDERRORERRORRELEASE_SAFELYRESP44代理的實現(xiàn)由于UIWEBVIEW繼承UISCROLLVIEW,而UISCROLLVIEW無法捕獲UITOUCH事件,故當(dāng)觸摸UIWEBVIEW時,系統(tǒng)將沒有任何反應(yīng),無法實現(xiàn)全屏,用代理注冊手勢,用來捕獲事件。UIGESTURERECOGNIZERDELEGATE/注冊手勢/將手勢加入要操作的控件UITAPGESTURERECOGNIZERSINGLETAPUITAPGESTURERECOGNIZERALLOCINITWITHTARGETSELFACTIONSELECTORDISPLAY_CONTENTWEBADDGESTURERECOGNIZERSINGLETAP/這個可以加到任何控件上SINGLETAPDELEGATESELFSINGLETAPCANCELSTOUCHESINVIEWNOSINGLETAPRELEASEBOOLGESTURERECOGNIZERUIGESTURERECOGNIZERGESTURERECOGNIZERSHOULDRECOGNIZESIMULTANEOUSLYWITHGESTURERECOGNIZERUIGESTURERECOGNIZEROTHERGESTURERECOGNIZERRETURNYES45算法描述與實現(xiàn)QUARTZ是COCOA全部圖表算法11的核心。它是圖表算法數(shù)據(jù)結(jié)構(gòu)和畫圖的基礎(chǔ),也是MACOSX的窗口服務(wù)器。COCOA圖表算法的基本概念,包括矩形,點,顏色和系統(tǒng)坐標(biāo)。(1)矩形和點在QUARTZ的所有繪圖包括矩形。在COCOA,你可以用NSRECT結(jié)構(gòu)去描述一個矩形的位置和尺寸TYPEDEFSTRUCTNSPOINTORIGIN/起點NSSIZESIZE/長寬NSRECT原點是畫矩形開始的地方。點由NSPOINT來描述,有坐標(biāo)X和YTYPEDEFSTRUCTFLOATX/橫坐標(biāo)FLOATY/縱坐標(biāo)NSPOINT矩形的大小區(qū)域是一個NSSIZE,包含了長和寬。沒有辦法去描述一個NSSIZE實例,它必須作為矩形的一部分來使用。TYPEDEFSTRUCTFLOATWIDTH/寬度FLOATHEIGHT/高度NSSIZECOCOA里畫圖的區(qū)域被作為一個矩形。QUARTZ調(diào)用這個畫圖區(qū)“BOUNDS”。一個NSPOINT點就能描繪BOUNDS視圖的任何位置。標(biāo)準(zhǔn)的QUARTZ系統(tǒng)坐標(biāo)是基于PDF模式,也就是說畫圖要從左下角開始,如圖41所示。圖41坐標(biāo)系的描述圖矩形和點比較的一些函數(shù)NSEQUALRECTS/矩形是否相同NSEQUALPOINTS/原點是否相同NSEQUALSIZES/大小是否相同NSCONTAINSRECT/是否包含另一個矩形NSINTERSECTSRECT/兩矩形重疊的部分NSPOINTINRECT/點是否在當(dāng)前矩形中NSMOUSEINRECT/鼠標(biāo)位置是否在當(dāng)前矩形中NSISEMPTYRECT/當(dāng)前矩形是否為空這些函數(shù)能在NSGEOMETRYH文件找到。2畫圖NSRECTS和NSPOINTS只是描述幾何體,他們并不能執(zhí)行畫圖。我們在DRAWRECT方法里編寫代碼來更新視圖。然后在事件處理循環(huán)內(nèi),COCOATOUCH調(diào)用視圖的DRAWRECT讓它更新。我們用路徑來描述矩形、圓及其他想要畫的形狀,路徑可以描邊,填充或既描邊又填充。描畫一個路徑會導(dǎo)致它根據(jù)圖形環(huán)境的狀態(tài)畫出來,填充則會讓路徑內(nèi)部的區(qū)域被涂滿,在CORE里,有4個圖元用于表達(dá)路徑點、線段、弧、和曲線。點是二維空間中的一個位置,不過不要把它想象成像素,一個點完全不占空間,所以畫一個點不會再屏幕上顯示任何東西,你可以在路徑中加入很多的點,想加多少加多少。要想得到能被顯示出來的東西,得用其他某種圖元,他們由點構(gòu)成。線段由兩個點定義起點和終點。線段可以“描繪”出來,這意味著圖形環(huán)境上所設(shè)的屬性都會用來畫出兩點之間的線段。線段沒有面積,所以他們不被填充。相反。可以用一組線段或曲線組成一個形狀,閉合路徑然后將其填充?;∮梢粋€點(圓心)、半徑,起始角和結(jié)束角定義。因為弧是占有一定面積的路徑,所以可以被填充或描邊,或者兩者一起。最后,曲線表示的是在“貝賽爾(BEZIER)曲線”。用四個點定義一個曲線,兩個點描述斷點,另外兩個描述每一端的切線。曲線有點像線段,它不是表示一個區(qū)域,不過這里的曲線是貝塞爾曲線,調(diào)用填充例程會閉合曲線,從而得到一個可供填充的區(qū)域。46本章小結(jié)本章重點介紹了各功能模塊具體實現(xiàn)及編碼過程,首先完成的數(shù)據(jù)的請求,當(dāng)請求完數(shù)據(jù)后對網(wǎng)絡(luò)錯誤的判斷及數(shù)據(jù)的解析,完成圖形算法,本章是整體結(jié)構(gòu)的核心。5數(shù)據(jù)測試本章主要針對各模塊之間切換的測試,主要包括登錄狀態(tài)、未登錄的顯示,各模塊功能的實現(xiàn)。51影評列表頁數(shù)據(jù)測試進(jìn)入程序,系統(tǒng)從服務(wù)器請求數(shù)據(jù),然后將其解析顯示在終端,如圖51所示,中斷顯示的界面是影視信息的首頁。圖51影評首頁INTERFACETCOMMENTDETAILNSOBJECTDOUBLE_RATING/用戶的評分NSSTRING_USERIMAGE/用戶圖像NSSTRING_NICKNAME/用戶昵稱NSSTRING_CONTENT/用戶評論NSSTRING_MOVIENAME/評論的電影名稱NSSTRING_MOIVEIMAGE/評論的電影海報END52具體內(nèi)容頁數(shù)據(jù)測試點擊頭圖,或列表進(jìn)入對應(yīng)的具體內(nèi)容頁,為實現(xiàn)UIWEBVIEW的混排,重寫HTML轉(zhuǎn)換格式,當(dāng)點擊網(wǎng)頁中的圖片時,運用JS技術(shù)找到網(wǎng)頁中的IMAGE節(jié)點,導(dǎo)出圖片鏈接,然后在本身頁面上覆蓋一個半透明的UIVIEW,將圖片顯示出來,然后加上下載保存按鈕,當(dāng)觸摸非圖片區(qū)域時,加載的UIVIEW從當(dāng)前視圖移走,實現(xiàn)如圖52所示。圖52影評詳情頁INTERFACEREVIEWDETAILNSOBJECTTCOMMENTDETAIL_COMMENTDETAIL;/從前個列表傳過來數(shù)據(jù)NSSTRING_URL/網(wǎng)頁顯示的內(nèi)容INT_COMMENTCOUNT/評論總數(shù)53評論頁及回復(fù)頁數(shù)據(jù)的測試由于評論及回復(fù)涉及到用戶信息12,故請求數(shù)據(jù)的時候用POST發(fā)送,且應(yīng)該加上簽名信息。VOIDPOSTREQUESTWITHURLNSURLURLNSSTRINGSIGNVALUECOMMUTILSMAKEHEADVALUEWITHURLURLANDSTRING“/加上簽名_HTTPREQUESTADDREQUESTHEADERCUSTOM_HEADERVALUESIGNVALUE_HTTPREQUESTURLURL_HTTPREQUESTSETREQUESTMETHOD“POST“/POST請求方式IFCOOKIESNIL/從COOKIE取值ISHASCOOKIEYESQUEUEINSTANCEADDOPERATION_HTTPREQUEST請求回來數(shù)據(jù)如圖53所示。點擊回復(fù)或?qū)懺u論進(jìn)入圖54所示。(登錄狀態(tài))圖53評論列表頁圖54回復(fù)評論、編寫評論頁INTERFACETCOMMENTREPLIESNSOBJECT/回復(fù)列表NSINTEGER_ID/回復(fù)者的IDNSSTRING_NICKNAME/回復(fù)者的昵稱NSSTRING_USERIMAGE/回復(fù)者的頭像NSSTRING_DATE/回復(fù)時間NSSTRING_CONTENT/回復(fù)內(nèi)容INTERFACECOMMENTLISTNSOBJECTNSINTEGER_ID/評論者的IDNSSTRING_NICKNAME/評論者的昵稱NSSTRING_USERIMAGE/評論者的頭像NSSTRING_DATE/評論日期NSSTRING_CONTENT/評論內(nèi)容NSMUTABLEARRAY_COMMENTREPLIESARRAY/評論者中的回復(fù)列表END54登錄測試當(dāng)收藏時或者對其進(jìn)行評論時,若沒有登陸,這時會跳入登錄頁面,如圖55所示。圖55登陸注冊55本章總結(jié)本章主要對此項目各模塊需求的測試,以及數(shù)據(jù)傳遞的測試是否能夠準(zhǔn)確執(zhí)行,主要進(jìn)行了具體內(nèi)容頁各個功能的觸摸和點擊,正常且能夠到達(dá)目標(biāo)狀態(tài)的數(shù)據(jù)測試。由于時間問題,可能還有一些功能未進(jìn)行測試。6總結(jié)和展望61總結(jié)本文首先闡述了該項目的背景及意義,接著介紹了開發(fā)環(huán)境及工具,通過用例模型明確需求,當(dāng)然在此之前的技術(shù)研究分析等工作是必不可少的。然后進(jìn)行總體分析與設(shè)計,其中主要包括系統(tǒng)的設(shè)計要求分析、系統(tǒng)總體功能描述、數(shù)據(jù)的需求分析,論文用圖表加文字的方式對設(shè)計工作中的重點部分做出了闡述。最后,論文把實現(xiàn)過程中的關(guān)鍵技術(shù)問題進(jìn)行了說明,并配有重要代碼的解析。在編寫此系統(tǒng)時,代碼以簡潔,運行效率作為最重要的設(shè)計原則。將面向?qū)ο蟮木幊碳夹g(shù)直接應(yīng)用于系統(tǒng)中,并按功能進(jì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. 人人文庫網(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論