創(chuàng)意生活館iOS客戶端開(kāi)發(fā)_第1頁(yè)
創(chuàng)意生活館iOS客戶端開(kāi)發(fā)_第2頁(yè)
創(chuàng)意生活館iOS客戶端開(kāi)發(fā)_第3頁(yè)
創(chuàng)意生活館iOS客戶端開(kāi)發(fā)_第4頁(yè)
創(chuàng)意生活館iOS客戶端開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本科畢業(yè)論文(設(shè)計(jì))題目:創(chuàng)意生活館iOS客戶端開(kāi)發(fā)學(xué)院:專業(yè)班級(jí):學(xué)號(hào):學(xué)生姓名:指導(dǎo)教師姓名:指導(dǎo)教師職稱:年月日摘要風(fēng)起云涌的高科技時(shí)代,智能終端的普及不僅推動(dòng)了移動(dòng)互聯(lián)網(wǎng)的發(fā)展,也帶來(lái)了移動(dòng)APP應(yīng)用的爆炸式增長(zhǎng)。憑借便攜、觸屏、高清的豐富體驗(yàn),以iphone和android為代表的手機(jī)移動(dòng)設(shè)備正悄然改變著企業(yè)的運(yùn)行方式。傳統(tǒng)的pc端,人們只能靠瀏覽器打開(kāi)網(wǎng)頁(yè),在網(wǎng)站上購(gòu)物,網(wǎng)站上信息量龐大繁雜,不容易找到自己想要的商品。而移動(dòng)端購(gòu)物客戶端的出現(xiàn),可以幫助人們快速找到自己想要的商品,并快捷安全地完成支付功能。論文簡(jiǎn)單介紹了系統(tǒng)的相關(guān)知識(shí)及涉及技術(shù),詳細(xì)地介紹了“創(chuàng)意生活館手機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)”課題開(kāi)發(fā)的整個(gè)過(guò)程,包括需求分析、總體設(shè)計(jì)、模塊劃分及實(shí)現(xiàn)過(guò)程等方面的內(nèi)容,最后對(duì)各個(gè)功能模塊的操作及其界面進(jìn)行描述。本系統(tǒng)開(kāi)發(fā)的應(yīng)用設(shè)計(jì)是基于Xcode5.0的ios項(xiàng)目,使用了多個(gè)第三方庫(kù),使用了多種設(shè)計(jì)模式,像MVC開(kāi)發(fā)模式,KVC、KVO設(shè)計(jì)模式。本系統(tǒng)具有操作簡(jiǎn)便、通俗易懂、便攜、容易使用等大容量的特點(diǎn),非常適合現(xiàn)代生活和移動(dòng)互聯(lián)網(wǎng)的發(fā)展。關(guān)鍵詞:Xcode5.0創(chuàng)意生活MVCAbstractTheburgeoninghigh-techera,thepopularityofintelligentterminalnotonlypromotedthedevelopmentofthemobileInternet,alsobroughttheexplosionofmobileAPP.Withportableandrichexperienceoftouchscreen,highdefinition,representedbytheiphoneandandroidmobiledevicesarechangingtheoperationmodeoftheenterprise.TraditionalPC,peoplecanonlybeopenedbythebrowserpage,shoppingonthewebsite,websiteinformationinlargeandcomplex,itisnoteasytofindthegoodsyouwant.Andmobileterminalshoppingclient,canhelppeoplequicklyfindgoodstheywant,andfastandsafelycompletepaymentfunctions.Paperintroducestherelatedknowledgeandtechnologyinvolvedinthesystem,detailedintroducesthe"creativelifehallmobileapplicationsystemdevelopment"thewholeprocessofprojectdevelopment,includingrequirementsanalysis,overalldesign,modulepartition,andthecontentoftheimplementationprocess,etc,finallytotheoperationofthevariousfunctionalmodulesanditsinterfaceisdescribed.ThesystemdesignisbasedonthedevelopmentofapplicationXcode5.0iosproject,USESmorethanonethirdpartylibraries,usingtheMVCdevelopmentpattern,observerpatterndevelopment.Thissystemhassimpleoperation,easytounderstand,portable,easytouse,suchasthecharacteristicsoflargecapacity,verysuitableformodernlifeandthedevelopmentofmobileInternet.Keywords:Xcode5.0,CreativeLife,MVC目錄TOC\o"1-3"\h\u21041緒論 緒論近幾年隨著蘋(píng)果手機(jī)的熱賣(mài),智能手機(jī)終端越來(lái)越普及;結(jié)合3G網(wǎng)絡(luò)的大力發(fā)展,移動(dòng)互聯(lián)的時(shí)代已經(jīng)正式到來(lái)。此次把生活創(chuàng)意館系統(tǒng)搬到iOS手機(jī)操作系統(tǒng)上,是對(duì)移動(dòng)開(kāi)發(fā)的一次簡(jiǎn)單嘗試。寄希望于此次嘗試能夠熟悉iOS移動(dòng)平臺(tái)的開(kāi)發(fā),綜合自己所學(xué)知識(shí),運(yùn)用到這個(gè)項(xiàng)目中來(lái),同時(shí)期待自己有所突破和創(chuàng)新,最后能夠積累一定的移動(dòng)開(kāi)發(fā)經(jīng)驗(yàn)。此次我把這些知識(shí)和信息在iOS手機(jī)平臺(tái)上展示出來(lái),在如今智能機(jī)逐漸普及的基礎(chǔ)上將會(huì)是一個(gè)新的空間。1.1課題開(kāi)發(fā)背景風(fēng)起云涌的高科技時(shí)代,智能終端的普及不僅推動(dòng)了移動(dòng)互聯(lián)網(wǎng)的發(fā)展,也帶來(lái)了移動(dòng)APP應(yīng)用的爆炸式增長(zhǎng)。憑借便攜、觸屏、高清的豐富體驗(yàn),以iphone和android為代表的手機(jī)移動(dòng)設(shè)備正悄然改變著企業(yè)的運(yùn)行方式。

近年來(lái),移動(dòng)購(gòu)物市場(chǎng)已具有一定的規(guī)模而且還將繼續(xù)擴(kuò)大,伴隨消費(fèi)者移動(dòng)設(shè)備使用目的的轉(zhuǎn)變,不再只局限于看視頻、刷微博、看電子書(shū)、聽(tīng)音樂(lè)等形式,移動(dòng)購(gòu)物開(kāi)始挑戰(zhàn)傳統(tǒng)購(gòu)物和PC購(gòu)物模式,成為各大電商力捧的新盈利點(diǎn)。

今年5月1日當(dāng)天,天貓無(wú)線端成交額增達(dá)到53.8%,首次超過(guò)PC端成交額。而5月2日-5月3日,天貓無(wú)線日均支付寶成交占天貓總成交比也達(dá)到49.8%,追平PC端成交量。這說(shuō)明人們的線上生活正在從pc端逐漸轉(zhuǎn)向移動(dòng)端,這是移動(dòng)互聯(lián)網(wǎng)帶來(lái)的巨大機(jī)遇。

移動(dòng)app的數(shù)量增長(zhǎng)也在于移動(dòng)設(shè)備的便捷,操作方便,界面簡(jiǎn)單親切。在每一個(gè)垂直領(lǐng)域內(nèi),app能夠快速幫助人們實(shí)現(xiàn)想要做的事情,資訊,社交聊天,訂票,當(dāng)然少不了購(gòu)物。傳統(tǒng)的pc端,人們只能靠瀏覽器打開(kāi)網(wǎng)頁(yè),在網(wǎng)站上購(gòu)物,網(wǎng)站上信息量龐大繁雜,不容易找到自己想要的商品。而移動(dòng)端購(gòu)物客戶端的出現(xiàn),可以幫助人們快速找到自己想要的商品,并快捷安全地完成支付功能。1.2系統(tǒng)開(kāi)發(fā)的意義這個(gè)系統(tǒng)可以實(shí)現(xiàn)在iphone終端上的創(chuàng)意商品的瀏覽,還可按類(lèi)別搜索創(chuàng)意生活用品,用戶可根據(jù)自己的需要來(lái)瀏覽選擇商品。能夠獲得最新的最流行的創(chuàng)意商品,讓生活緊跟時(shí)代的前沿,讓生活變得更加人性化,讓讓生活變得更簡(jiǎn)單,讓豐富多彩的生活不再是有錢(qián)人的專屬。PC端的笨重,移動(dòng)端的方便快捷,隨時(shí)隨地的瀏覽商品,收藏上商品,購(gòu)買(mǎi)商品,支付商品。1.3本系統(tǒng)預(yù)達(dá)到的目標(biāo) 該系統(tǒng)旨為用戶展示一些生活上具有創(chuàng)意的小商品,通過(guò)主頁(yè)推薦,篩選,分類(lèi),搜索,以不同的方式最大程度地為用戶展示用戶需要的商品。用戶能夠獲得最新的最流行的創(chuàng)意商品,讓生活緊跟時(shí)代的前沿,讓生活變得更加人性化,讓生活變得更簡(jiǎn)單,讓生活更加豐富多彩。最終,用戶可以在本系統(tǒng)完成商品的購(gòu)買(mǎi)。1.4章節(jié)介紹第一章,介紹了課題的開(kāi)發(fā)背景、課題開(kāi)發(fā)的現(xiàn)實(shí)意義。第二章,概略地介紹了開(kāi)發(fā)此系統(tǒng)用到的各種技術(shù)理論基礎(chǔ),ios系統(tǒng)構(gòu)架,程序框架等。第三章,對(duì)該的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)功能、運(yùn)行環(huán)境等概要分析設(shè)計(jì)階段做工了大體介紹即需求分析。第四章,對(duì)系統(tǒng)總體流程設(shè)計(jì)和功能設(shè)計(jì)作了簡(jiǎn)要說(shuō)明,具體介紹了系統(tǒng)各功能實(shí)現(xiàn)過(guò)程。第五章,總結(jié)。2理論技術(shù)基礎(chǔ)2.1理論基礎(chǔ)軟件開(kāi)發(fā)中理論基礎(chǔ)包括認(rèn)知科學(xué)中關(guān)于概念模式的概念與方法;數(shù)據(jù)庫(kù)技術(shù)的理論與方法;編譯技術(shù)的有關(guān)方法;關(guān)于人機(jī)界面的理論與方法;管理科學(xué)中關(guān)于項(xiàng)目管理與版本管理的理論與方法;系統(tǒng)科學(xué)與系統(tǒng)工程中的有關(guān)理論與方法,當(dāng)然還有面向?qū)ο蟮拈_(kāi)發(fā)方法。概念模式是認(rèn)知科學(xué)中的一個(gè)用語(yǔ),指的是人信在認(rèn)識(shí)事物過(guò)程中,對(duì)于某一事物或某一系統(tǒng)形成的抽象的、一般化的框架。概念模式在認(rèn)識(shí)過(guò)程中十分重要,同時(shí)作為交流與表達(dá)工具也是十分重要的,人們?cè)诨ハ嗯浜?、互相協(xié)調(diào)、共同完成某項(xiàng)任務(wù)的時(shí)候,需要統(tǒng)一認(rèn)識(shí)、協(xié)同行動(dòng),就必須用某種公認(rèn)的方式來(lái)進(jìn)行表述,概念模式正是起了這種作用。概念模式的實(shí)現(xiàn)方式包括:框圖:把程序基本步驟分為處理、判斷、輸入輸出、起始或終止等幾個(gè)功能,并能不同的記號(hào)加以表示,用箭頭表示控制或執(zhí)行的順序。結(jié)構(gòu)圖:它的基本圖例為模塊,以模塊的調(diào)用關(guān)系為線索,用連線表示調(diào)用關(guān)系,并注明傳遞參數(shù)?;菊{(diào)用方式有:順序調(diào)用、選擇調(diào)用、循環(huán)調(diào)用。數(shù)據(jù)流程圖(DFD):面對(duì)的是系統(tǒng)的信息流程,把信息流看作一個(gè)組織或系統(tǒng)運(yùn)作的線索,簡(jiǎn)明扼要地勾畫(huà)出全局,基本元素是外部實(shí)體,以箭頭表示信息在它們之間的流動(dòng)狀況。實(shí)體關(guān)系圖:用于描述靜態(tài)數(shù)據(jù)結(jié)構(gòu)的概念模式,以實(shí)體、關(guān)系、屬性三個(gè)基本概念概括數(shù)據(jù)的基本結(jié)構(gòu)。數(shù)據(jù)字典(DD):描述數(shù)據(jù)內(nèi)容的概念模式,用表格的形式列出數(shù)據(jù)數(shù)據(jù)的基本屬性及相互關(guān)系。時(shí)序網(wǎng)絡(luò):描述系統(tǒng)狀態(tài)及轉(zhuǎn)換方式,常用于實(shí)時(shí)控制方面的軟件。數(shù)學(xué)與邏輯模型:描述客觀世界的狀態(tài)與規(guī)律,包括常用的決策樹(shù)與決策表。計(jì)算機(jī)模擬模型:利用計(jì)算機(jī)大量、高速處理信息的能力,在計(jì)算機(jī)內(nèi)設(shè)置一定的環(huán)境,以程序來(lái)實(shí)現(xiàn)客觀系統(tǒng)中某些規(guī)律或規(guī)則,在二者的基礎(chǔ)上計(jì)算機(jī)高速運(yùn)行,以便觀察客觀系統(tǒng)的運(yùn)行。信息庫(kù)是一個(gè)包羅萬(wàn)象的,隨著開(kāi)發(fā)項(xiàng)目進(jìn)展而不斷修改與補(bǔ)充的信息集合。數(shù)據(jù)庫(kù)是在文件系統(tǒng)基礎(chǔ)上發(fā)展起來(lái)的一種管理技術(shù),重點(diǎn)在于合理地組織數(shù)據(jù),減少冗余;數(shù)據(jù)倉(cāng)庫(kù)是為了使數(shù)據(jù)更接近實(shí)用,對(duì)數(shù)據(jù)進(jìn)行多次加工或提煉,得出許多派生或綜合的數(shù)據(jù)。區(qū)別與特點(diǎn):它在規(guī)模上不一定像數(shù)據(jù)倉(cāng)庫(kù)那么大,分析提煉的要求也與數(shù)據(jù)倉(cāng)庫(kù)不同,但數(shù)據(jù)結(jié)構(gòu)復(fù)雜,不斷變化,分析的要求也不同,還需要保持一致性,需要供分析人員、程序員、用戶、維護(hù)售貨員等多種人員使用。人機(jī)界面交互原則:輸入盡量自然,輸出必須準(zhǔn)確;界面必須始終一致;界面必須使用戶隨時(shí)掌握任務(wù)的進(jìn)展善;界面必須提供幫助;寧可讓程序多做,不可讓用戶多干。重要性:對(duì)于用戶來(lái)說(shuō),界面就是系統(tǒng)本身。因?yàn)橛脩糁魂P(guān)心能否有效地使用軟件來(lái)解決問(wèn)題,用戶對(duì)軟件功能的理解都在界面上表現(xiàn)出來(lái),用戶的輸入是否自然、簡(jiǎn)便,是否有充分的提示和幫助,對(duì)用戶的錯(cuò)誤是否有友好的措施,輸出的形式是否易于理解,結(jié)果是否正確,都是用戶關(guān)心的問(wèn)題,也是界面的特點(diǎn),界面不友好的軟件就不是成功的軟件。面向?qū)ο笫且环N對(duì)現(xiàn)實(shí)世界理解和抽象的方法,是計(jì)算機(jī)編程技術(shù)發(fā)展到一定階段后的產(chǎn)物。早期的計(jì)算機(jī)編程是基于面向過(guò)程的方法,例如實(shí)現(xiàn)算術(shù)運(yùn)算1+1+2=4,通過(guò)設(shè)計(jì)一個(gè)算法就可以解決當(dāng)時(shí)的問(wèn)題。隨著計(jì)算機(jī)技術(shù)的不斷提高,計(jì)算機(jī)被用于解決越來(lái)越復(fù)雜的問(wèn)題。一切事物皆對(duì)象,通過(guò)面向?qū)ο蟮姆绞?,將現(xiàn)實(shí)世界的事物抽象成對(duì)象,現(xiàn)實(shí)世界中的關(guān)系抽象成類(lèi)、繼承,幫助人們實(shí)現(xiàn)對(duì)現(xiàn)實(shí)世界的抽象與數(shù)字建模。通過(guò)面向?qū)ο蟮姆椒?,更利于用人理解的方式?duì)復(fù)雜系統(tǒng)進(jìn)行分析、設(shè)計(jì)與編程。同時(shí),面向?qū)ο竽苡行岣呔幊痰男?,通過(guò)封裝技術(shù),消息機(jī)制可以像搭積木的一樣快速開(kāi)發(fā)出一個(gè)全新的系統(tǒng)。面向?qū)ο笫侵敢环N程序設(shè)計(jì)范型,同時(shí)也是一種程序開(kāi)發(fā)的方法。對(duì)象指的是類(lèi)的集合。它將對(duì)象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴(kuò)展性。2.2技術(shù)基礎(chǔ)此應(yīng)用用到的技術(shù)主要包括兩方面:OC語(yǔ)言和Xcode開(kāi)發(fā)環(huán)境。OC語(yǔ)言是一門(mén)面向?qū)ο蟮拈_(kāi)發(fā)語(yǔ)言,它是一門(mén)非?!皩?shí)際”的語(yǔ)言。它使用一個(gè)用C寫(xiě)成、很小的運(yùn)行庫(kù),只會(huì)令應(yīng)用程序的大小增加很小,和大部分OO系統(tǒng)使用極大的VM執(zhí)行時(shí)間會(huì)取代了整個(gè)系統(tǒng)的運(yùn)作相反,ObjC寫(xiě)成的程序通常不會(huì)比其原始碼大很多。而其函式庫(kù)也和Smalltalk系統(tǒng)要使用極大的內(nèi)存來(lái)開(kāi)啟一個(gè)窗口的情況相反。Objective-C的最初版本并不支持垃圾回收。在當(dāng)時(shí)這是爭(zhēng)論的焦點(diǎn)之一,很多人考慮到Smalltalk回收時(shí)有漫長(zhǎng)的“死亡時(shí)間”,令整個(gè)系統(tǒng)失去功用。Objective-C為避免此問(wèn)題才不擁有這個(gè)功能。雖然某些第三方版本已加入這個(gè)功能(尤是GNUstep),Apple在其MacOSX10.3中仍未引入這個(gè)功能。另一個(gè)問(wèn)題是ObjC不包括命名空間機(jī)制(namespacemechanism)。取而代之的是程序設(shè)計(jì)師必須在其類(lèi)別名稱加上前綴,時(shí)常引致沖突。在2004年,在Cocoa編程環(huán)境中,所有MacOSX類(lèi)別和函式均有“NS”作為前綴,例如NSObject或NSButton來(lái)清楚分辨它們屬于MacOSX核心;使用“NS”是由于這些類(lèi)別的名稱在NeXTSTEP開(kāi)發(fā)時(shí)定下。雖然Objective-C是C的母集,但它也不視C的基本型別為第一級(jí)的對(duì)象。和C++不同,Objective-C不支援運(yùn)算子多載(它不支持ad-hoc多型)。亦與C++不同,但和Java相同,Objective-C只容許對(duì)象繼承一個(gè)類(lèi)別(不設(shè)多重繼承)。Categories和protocols不但可以提供很多多重繼承的好處,而且沒(méi)有很多缺點(diǎn),例如額外執(zhí)行時(shí)間過(guò)重和二進(jìn)制不兼容。Xcode是蘋(píng)果公司在MacOSX下的集成開(kāi)發(fā)環(huán)境(IDE)引擎。它負(fù)責(zé)處理從最開(kāi)始到工程的最終部署這一過(guò)程中的大多數(shù)細(xì)節(jié)。您可以通過(guò)這個(gè)工具來(lái)完成如下工作:(1)創(chuàng)建和管理工程,包括指定目標(biāo)的需求、依賴性、和連編的風(fēng)格。(2)在具有語(yǔ)法染色、自動(dòng)縮進(jìn)等功能的編輯器上編寫(xiě)源代碼。(3)在工程的不同組件中進(jìn)行漫游和檢索,包括頭文件和文檔。(4)連編工程在圖形化的源代碼級(jí)調(diào)試器上調(diào)試工程。Xcode可以連編由C、C++、Objective-C、Objective-C++、和Java編寫(xiě)的源代碼組成的工程,可以生成MacOSX支持的所有類(lèi)型的執(zhí)行代碼,包括命令行工具、框架、插件、內(nèi)核擴(kuò)展、程序包、和應(yīng)用程序。Xcode允許您對(duì)連編和調(diào)試工具、可執(zhí)行文件的打包方式(包括信息屬性列表和本地化程序包)、連編過(guò)程(包括拷貝文件、腳本文件處理、和其它連編階段)、以及用戶界面(包括分立和多視圖的代碼編輯器)進(jìn)行幾乎無(wú)限的定制;還支持幾個(gè)源代碼管理系統(tǒng)(其中有CVS和Perforce),使您可以將文件追加到代碼庫(kù)、提交修改、獲取更新版本、以及進(jìn)行版本的比較。Xcode和另外一個(gè)主要的開(kāi)發(fā)工具InterfaceBuilder良好地集成在一起。在InterfaceBuilder中,您可以定義一個(gè)類(lèi)(包括超類(lèi),插座變量,和動(dòng)作),并為工程中的每個(gè)類(lèi)生成源代碼文件的框架。在Xcode中,您可以為定制類(lèi)添加插座變量和動(dòng)作,然后讓InterfaceBuilder將這些實(shí)體導(dǎo)入到nib文件中。2.3iOS系統(tǒng)架構(gòu) iOS是運(yùn)行于iPhone、iPodtouch以及iPad設(shè)備的操作系統(tǒng),它管理設(shè)備硬件并為手機(jī)本地應(yīng)用程序的實(shí)現(xiàn)提供基礎(chǔ)技術(shù)。iPhoneSDK包含開(kāi)發(fā)、安裝及行本地應(yīng)用程序所需的工具和接口。本地應(yīng)用程序使用iOS系統(tǒng)框架Objective-C語(yǔ)言進(jìn)行構(gòu)建,并且直接運(yùn)行于iOS設(shè)備。iOS架構(gòu)和MacOS的基礎(chǔ)架構(gòu)相似。站在高級(jí)層次來(lái)看,iOS扮演底層硬件和應(yīng)用程序(顯示在屏幕上的應(yīng)用程序)的中介,應(yīng)用程序不能直接訪問(wèn)硬件,而需要和系統(tǒng)接口進(jìn)行交互,這樣可以防止應(yīng)用程序改變底層硬件。iOS系統(tǒng)框架分為四大層,CocCocoaTouch層、Media層、CoreService層、CoreOS層,底層為所有應(yīng)用程序提供基礎(chǔ)服務(wù),高層則包含一些復(fù)雜巧妙的服務(wù)和技術(shù)。2.3.1核心操作系統(tǒng)層System級(jí)包含kernel環(huán)境、驅(qū)動(dòng)以及操作系統(tǒng)級(jí)別的unix接口。kernel本身負(fù)責(zé)操作系統(tǒng)的每一個(gè)方面:如虛擬內(nèi)存管理、線程、文件系統(tǒng)、網(wǎng)絡(luò)和互聯(lián)通信。在該層的驅(qū)動(dòng)也提供在可獲得的硬件與系統(tǒng)框架之間的接口。為了安全,對(duì)kernel和驅(qū)動(dòng)的存取被限制到一組有限的系統(tǒng)框架和應(yīng)用。2.3.2核心服務(wù)層CoreServices包含應(yīng)用需要的基礎(chǔ)的系統(tǒng)服務(wù)。這些服務(wù)中的核心是CoreFoundation和Foundation框架,定義了所有應(yīng)用使用的基本類(lèi)型。該層也包含獨(dú)立的技術(shù)來(lái)支持一些其它功能,例如位置、iCloud、社交媒體和網(wǎng)絡(luò)。NetServicer主要負(fù)責(zé)網(wǎng)絡(luò)服務(wù),在開(kāi)發(fā)過(guò)程中,承擔(dān)應(yīng)用程序與服務(wù)器之間連接的角色,有很強(qiáng)的交互性。媒體層包含圖形技術(shù)、音頻技術(shù)和視頻技術(shù),這些技術(shù)相互結(jié)合就可為移動(dòng)設(shè)備帶來(lái)最好的多媒體體驗(yàn),更重要的是,它們讓創(chuàng)建外觀音效俱佳的應(yīng)用程序變得更加容易。您可以使用iOS的高級(jí)框架更快速地創(chuàng)建高級(jí)的圖形和動(dòng)畫(huà),也可以通過(guò)底層框架訪問(wèn)必要的工具,從而以某種特定的方式完成某種任務(wù)。它包括以下這些組件:Multi-TouchEvents,CoreMotion,Camera,ViewHierarchy,Localization,Alerts,WebViews,ImagePicker,Multi-TouchControls。Cocoa

Touch層包含創(chuàng)建iOS應(yīng)用程序所需的關(guān)鍵框架。上至實(shí)現(xiàn)應(yīng)用程序可視界面,下至與高級(jí)系統(tǒng)服務(wù)交互,都需要該層技術(shù)提供底層基礎(chǔ)。在開(kāi)發(fā)應(yīng)用程序的時(shí)候,盡可能不要使用更底層的框架,盡可能使用該層的框架。2.3.3應(yīng)用程序框架編寫(xiě)應(yīng)用程序項(xiàng)目,都是從CocoaTouch層開(kāi)始的,具體來(lái)說(shuō)是從UIKitFramework開(kāi)始的。iOS常用的SDK框架如下:AddressBook.framework提供訪問(wèn)存儲(chǔ)核心數(shù)據(jù)庫(kù)中用戶聯(lián)系人信息的功能。AddressBook.framework提供一個(gè)用戶界面,用于顯示存儲(chǔ)在地址薄中的聯(lián)系人詳情。AudioUnit.framework提供一個(gè)接口,讓我們的應(yīng)用程序可以對(duì)音頻進(jìn)行處理。AudioToolbox.framework和AVFoundation.framework提供音頻錄制和回放的底層API,同時(shí)也負(fù)責(zé)管理音頻硬件。CFNetwork.framework訪問(wèn)和配置網(wǎng)絡(luò),像HTTP,F(xiàn)TP和BonjourServices等。CoreFoundation.framework提供抽象的常用數(shù)據(jù)類(lèi)型,如Unicode、strings、XML、URL等。CoreGraphics.framework提供2D繪制的基于C的API。Foundation.framework提供Object-C的基礎(chǔ)類(lèi)(像NSObject)、基本數(shù)據(jù)類(lèi)型和操作系統(tǒng)服務(wù)等。GameKit.framework為游戲提供網(wǎng)絡(luò)功能,點(diǎn)對(duì)點(diǎn)互聯(lián)和游戲中的語(yǔ)音交流。MapKit.framework為應(yīng)用程序提供內(nèi)嵌地圖的接口。MediaPlayer.framework提供視頻播放和音頻的功能。MessageUI.framework提供視圖控制接口用以處理E-mail和短信。OpenGLES.framework提供簡(jiǎn)潔而高效的繪制2D和3D圖形的OpenGLAPI。QuartzCore.framework提供動(dòng)畫(huà)特效以及通過(guò)硬件進(jìn)行渲染的能力。StoreKit.framework為應(yīng)用程序提供在程序運(yùn)行中消費(fèi)的支持。SystemConfiguration.framework檢測(cè)當(dāng)前網(wǎng)絡(luò)是否可用和硬件設(shè)備狀態(tài)的能力。2.3.4Unix內(nèi)核iOS系統(tǒng)同mac系統(tǒng)都是是以Darwin為基礎(chǔ)的,是在有Unix衍生出來(lái)的BSD基礎(chǔ)上開(kāi)發(fā)出來(lái)適合在移動(dòng)設(shè)備上運(yùn)行的系統(tǒng)。2.3.5開(kāi)發(fā)環(huán)境配置需要裝有Mac操作系統(tǒng)的Mac本一臺(tái),有條件的可以配一部蘋(píng)果手機(jī)。Xcode5.0,是ios開(kāi)發(fā)唯一的工具,Xcode內(nèi)集成大量框架,功能強(qiáng)大,方便易用。3系統(tǒng)分析與設(shè)計(jì)3.1需求分析該部分主要介紹各種需求分析,主要包括:技術(shù)條件可行性描述,硬件可行性描述,社會(huì)因素可行性描述,市場(chǎng)因素可行性描述等。具體描述內(nèi)容如下。3.2系統(tǒng)需求分析本系統(tǒng)是基于iOS平臺(tái)開(kāi)發(fā)的一款創(chuàng)意生活館系統(tǒng),將要應(yīng)用在iOS移動(dòng)通訊設(shè)備上,能夠盡可能的滿足用戶更方便更快捷的需求,能夠在在任何地方瀏覽商品,選擇商品,購(gòu)買(mǎi)商品,不受地點(diǎn)的限制。創(chuàng)意生活館手機(jī)應(yīng)用客戶端總體的架構(gòu)圖如圖3-1所示。創(chuàng)意生活館創(chuàng)意生活館搜索分類(lèi)我首頁(yè)搜索分類(lèi)我首頁(yè) 人氣價(jià)格銷(xiāo)量搜索內(nèi)容一級(jí)分類(lèi)二級(jí)分類(lèi)人氣價(jià)格銷(xiāo)量搜索內(nèi)容一級(jí)分類(lèi)二級(jí)分類(lèi)申請(qǐng)用戶注冊(cè)用戶圖3-1總體架構(gòu)圖3.3可行性分析可行性分析主要分析該系統(tǒng)的實(shí)現(xiàn)可行性,主要包括技術(shù)條件可行性,硬件條件可行性,社會(huì)因素可行性,市場(chǎng)因素可行性。3.3.1技術(shù)條件可行性說(shuō)到技術(shù),首先也是最重要的就是開(kāi)發(fā)語(yǔ)言,IOS應(yīng)用客戶端開(kāi)發(fā)使用的是Objective-C語(yǔ)言,它是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,高效而優(yōu)雅。相對(duì)于其他面向?qū)ο笳Z(yǔ)言它主要有以下幾種特性:1.動(dòng)態(tài)綁定函數(shù)和消息的最根本不同是:函數(shù)和它的參數(shù)是在編譯的時(shí)候已經(jīng)確定下來(lái),但是消息和接收對(duì)象知道程序已經(jīng)在運(yùn)行,消息在傳遞時(shí)才能確定下來(lái)。確切的消息方法實(shí)現(xiàn)依賴于消息的接收者,不同的接收者可能有相同的方法名不同的方法實(shí)現(xiàn),只有在消息接收時(shí)才能確定(動(dòng)態(tài)類(lèi)型),通過(guò)源代碼的類(lèi)型定義并不能完全確認(rèn)接收者的類(lèi)型。運(yùn)行時(shí)消息例程查找接收者和消息方法,找到消息方法實(shí)現(xiàn)的機(jī)器碼,呼叫這個(gè)方法,傳遞給它消息實(shí)例變量指針。2.類(lèi)別Objective-C的標(biāo)準(zhǔn)的類(lèi)聲明,使用@interface關(guān)鍵字。但類(lèi)別與類(lèi)聲明區(qū)別的是在括號(hào)中聲明了一個(gè)類(lèi)別名字。類(lèi)別能為任何類(lèi)添加類(lèi)別,包括不知道源代碼的類(lèi)(例如標(biāo)準(zhǔn)的CocoaTouch類(lèi)等)。已聲明類(lèi)別的類(lèi),類(lèi)及其子類(lèi)的所有實(shí)例都可以使用聲明在類(lèi)別中的方法,在運(yùn)行時(shí),通過(guò)類(lèi)別為類(lèi)添加的方法與類(lèi)本身的方法沒(méi)有任何區(qū)別。類(lèi)別也通常在頭文件中進(jìn)行聲明,在分離的源文件中進(jìn)行類(lèi)別方法的實(shí)現(xiàn)。為了使用為類(lèi)添加的類(lèi)別,需要在使用的地方輸入聲明類(lèi)別的頭文件。類(lèi)別可以作為一種設(shè)計(jì)模式使用,用來(lái)使用類(lèi)別把一個(gè)實(shí)現(xiàn)復(fù)雜的類(lèi)分離為幾個(gè)實(shí)現(xiàn)文件。也可以為不同的平臺(tái)提供不同的類(lèi)別實(shí)現(xiàn)方法。類(lèi)別用來(lái)聲明實(shí)例方法或類(lèi)方法,但不適合聲明額外的屬性。在一個(gè)類(lèi)別接口中聲明一個(gè)屬性是有效的,但在類(lèi)別中聲明一個(gè)額外的實(shí)例變量是不可能的,這意味者編譯器不能夠生成任何實(shí)例變量,也不能夠生成任何屬性存取方法。但你能夠在類(lèi)別實(shí)現(xiàn)中實(shí)現(xiàn)自己的屬性存取方法,但你不能夠保持和跟蹤一個(gè)屬性值,除非它已經(jīng)在原先的類(lèi)中存儲(chǔ)。另外需要注意的是類(lèi)別中定義的方法名字不能與該類(lèi)已有的方法或?yàn)樵擃?lèi)(或其超類(lèi))定義的其它類(lèi)別中的方法沖突。3.協(xié)議在Objective-C中,每個(gè)類(lèi)都都對(duì)外提供自己的接口,類(lèi)包括接口聲明和類(lèi)實(shí)現(xiàn)。而沒(méi)有像其它語(yǔ)言(如java)那樣,接口與類(lèi)定義是獨(dú)立的,一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。但在Objective-C中協(xié)議可以起到類(lèi)似的作用,協(xié)議用來(lái)聲明與任何特定的類(lèi)獨(dú)立的方法,如果一個(gè)類(lèi)聲明符合某種協(xié)議,則其實(shí)現(xiàn)中必須實(shí)現(xiàn)協(xié)議中聲明的方法,但與其它語(yǔ)言接口定義不同的是在協(xié)議中不僅能聲明對(duì)象方法,還能聲明類(lèi)方法以及屬性。4.繼承性與C++不同的是,OC中繼承只能是單繼承,不存在多繼承,這為開(kāi)發(fā)者省去了復(fù)雜的繼承模式。要實(shí)現(xiàn)多繼承的效果,可以使用類(lèi)別。繼承是一種聯(lián)結(jié)類(lèi)的層次模型,并且允許和鼓勵(lì)類(lèi)的重用,它提供了一種明確表述共性的方法。對(duì)象的一個(gè)新類(lèi)可以從現(xiàn)有的類(lèi)中派生,這個(gè)過(guò)程稱為類(lèi)繼承。新類(lèi)繼承了原始類(lèi)的特性,新類(lèi)稱為原始類(lèi)的派生類(lèi)(子類(lèi)),而原始類(lèi)稱為新類(lèi)的基類(lèi)(父類(lèi))。派生類(lèi)可以從它的基類(lèi)那里繼承方法和實(shí)例變量,并且類(lèi)可以修改或增加新的方法使之更適合特殊的需要。在Objective-c中所有的類(lèi)都是繼承NSObject的,因?yàn)镹SObject有一些基本的方法。類(lèi)的繼承關(guān)系圖3-2所示:NSObjectNSObjectUIResponderUIScreenUIWindowUIViewUILabelUIScrowViewUITextViewUITableView圖3-2類(lèi)的繼承關(guān)系圖5.開(kāi)發(fā)工具:xcode5.0。6.操作系統(tǒng):mac10.8操作系統(tǒng)。3.3.2硬件條件可行性硬件方面只需要一臺(tái)裝有mac系統(tǒng)的mac本即可。有條件的可以配一部Apple移動(dòng)設(shè)備。3.3.3社會(huì)因素可行性如今社會(huì)發(fā)展迅速,人們對(duì)應(yīng)用的要求越來(lái)越高,移動(dòng)購(gòu)物市場(chǎng)已具有一定的規(guī)模而且還將繼續(xù)擴(kuò)大,伴隨消費(fèi)者移動(dòng)設(shè)備使用目的的轉(zhuǎn)變,不再只局限于看視頻、刷微博、看電子書(shū)、聽(tīng)音樂(lè)等形式,移動(dòng)購(gòu)物開(kāi)始挑戰(zhàn)傳統(tǒng)購(gòu)物和PC購(gòu)物模式,成為各大電商力捧的新盈利點(diǎn)。

今年5月1日當(dāng)天,天貓無(wú)線端成交額增達(dá)到53.8%,首次超過(guò)PC端成交額。而5月2日-5月3日,天貓無(wú)線日均支付寶成交占天貓總成交比也達(dá)到49.8%,追平PC端成交量。這說(shuō)明人們的線上生活正在從pc端逐漸轉(zhuǎn)向移動(dòng)端,這是移動(dòng)互聯(lián)網(wǎng)帶來(lái)的巨大機(jī)遇。

移動(dòng)app的數(shù)量增長(zhǎng)也在于移動(dòng)設(shè)備的便捷,操作方便,界面簡(jiǎn)單親切。在每一個(gè)垂直領(lǐng)域內(nèi),app能夠快速幫助人們實(shí)現(xiàn)想要做的事情,資訊,社交聊天,訂票,當(dāng)然少不了購(gòu)物。傳統(tǒng)的pc端,人們只能靠瀏覽器打開(kāi)網(wǎng)頁(yè),在網(wǎng)站上購(gòu)物,網(wǎng)站上信息量龐大繁雜,不容易找到自己想要的商品。而移動(dòng)端購(gòu)物客戶端的出現(xiàn),可以幫助人們快速找到自己想要的商品,并快捷安全地完成支付功能。3.3.4市場(chǎng)因素可行性近幾年隨著蘋(píng)果手機(jī)的熱賣(mài),智能手機(jī)終端越來(lái)越普及;結(jié)合3G網(wǎng)絡(luò)的大力發(fā)展,移動(dòng)互聯(lián)的時(shí)代已經(jīng)正式到來(lái)。此次把生活創(chuàng)意館系統(tǒng)搬到iOS手機(jī)操作系統(tǒng)上,是對(duì)移動(dòng)開(kāi)發(fā)的一次簡(jiǎn)單嘗試。寄希望于此次嘗試能夠熟悉iOS移動(dòng)平臺(tái)的開(kāi)發(fā),綜合自己所學(xué)知識(shí),運(yùn)用到這個(gè)項(xiàng)目中來(lái),同時(shí)期待自己有所突破和創(chuàng)新,最后能夠積累一定的移動(dòng)開(kāi)發(fā)經(jīng)驗(yàn)。此次我把這些知識(shí)和信息在iOS手機(jī)平臺(tái)上展示出來(lái),在如今智能機(jī)逐漸普及的基礎(chǔ)上將會(huì)是一個(gè)新的空間。3.4總體設(shè)計(jì)此應(yīng)用主要由四個(gè)大模塊組成,首先最底層的是一個(gè)自定義的UITabBarController,它管理了4個(gè)UINavigationController,每一個(gè)導(dǎo)航控制器又管理了自己的子視圖控制器.子視圖控制器中又有自己的自視圖控制器,且相互之間可以跳轉(zhuǎn)。另外該系統(tǒng)是遵循mvc模式,使用新出的ARC內(nèi)存管理方式??刂破鬟B接視圖和數(shù)據(jù)模型,處理主要邏輯,例如,請(qǐng)求服務(wù)器取得數(shù)據(jù),解析存到數(shù)據(jù)模型里,并將數(shù)據(jù)模型傳給視圖,視圖只處理跟自己顯示有關(guān)的具體邏輯。該系統(tǒng)的體系結(jié)構(gòu)如圖3-3所示。ShoppingCarViewControllerShoppingCarViewControllerParentViewControllerParentViewControllerHomePageViewControllerHomePageViewControllerSearchViewController控制器SearchViewController控制器CategoryViewControllerCategoryViewControllerIViewControllerIViewControllerUITableviewUITableview視圖視圖UIWebViewUIWebViewClassificationModelClassificationModel模型模型HomePageModelHomePageModel圖3-3體系結(jié)構(gòu)圖3.5詳細(xì)設(shè)計(jì)1.主頁(yè)模塊流程圖,此界面主要顯示推薦的一些創(chuàng)意商品,列表主要顯示商品的基本信息,選擇每個(gè)商品可以進(jìn)入對(duì)應(yīng)商品詳情界面。首頁(yè)首頁(yè)選擇某商品商品詳情購(gòu)物圖3-4首頁(yè)流程圖2.分類(lèi)模塊流程圖,此模塊分為一級(jí)分類(lèi)和二級(jí)分類(lèi),一級(jí)分類(lèi)一級(jí)分類(lèi)選擇分類(lèi)二級(jí)類(lèi)別商品詳情圖3.5專題流程圖搜索模塊流程圖,點(diǎn)擊搜索導(dǎo)航,進(jìn)入搜索界面,顯示一個(gè)搜索條,支持關(guān)鍵字搜索,但不支持模糊搜索。輸入關(guān)鍵字,顯示出相應(yīng)的要搜索的內(nèi)容。如圖3-6所示搜索條搜索條輸入搜索內(nèi)容商品列表圖3-6搜索模塊流程圖4.我模塊主要是登陸自己的賬戶,在賬戶在線的情況下實(shí)現(xiàn)購(gòu)物,其流程如圖3-7所示。選擇注冊(cè)登錄選擇注冊(cè)登錄我注冊(cè)注冊(cè)成功并登錄檢查是否注冊(cè)處登錄注冊(cè)成功并登錄檢查用戶名與密碼是否一致否否 是是 圖3-7我流程圖4系統(tǒng)實(shí)現(xiàn)4.1代碼結(jié)構(gòu)的實(shí)現(xiàn)該系統(tǒng)主要由四個(gè)基本界面組成,代碼結(jié)構(gòu)如下:本系統(tǒng)采用MVC設(shè)計(jì)模式,M是model,建立的數(shù)據(jù)模型;V是View,是每個(gè)model所對(duì)應(yīng)View來(lái)顯示內(nèi)容;C是Controller,controller是視圖的控制器。系統(tǒng)在實(shí)現(xiàn)時(shí)用到的這四個(gè)方面主要內(nèi)容如下:1、模型Model:ClassifictionNodeModelHomePageModel2、視圖View:ClassCellResultCellMenuClassifyCellHomePageCell3、控制器Controller:RootViewControllerSubjectViewControllerCategoryViewContrpollerSearchControllerIViewControllerParentViewController4、第三方庫(kù):Hash:用于加密數(shù)據(jù)的第三方庫(kù)。Fmdb:數(shù)據(jù)庫(kù)第三方庫(kù)。EGOTableViewPullRefresh:下拉刷新的第三方庫(kù)。AS3DpuuRefresh:下拉刷新的第三方庫(kù)。ASIHttpRequest:網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)的第三方庫(kù)。SDWebImage:網(wǎng)絡(luò)解析圖片的第三方庫(kù)。4.2各模塊代碼的實(shí)現(xiàn)主頁(yè)模塊:此界面主要向用戶展示推薦的生活創(chuàng)意產(chǎn)品,首先向后臺(tái)服務(wù)器請(qǐng)求數(shù)據(jù),http請(qǐng)求方式為get請(qǐng)求方式。請(qǐng)求成功后,服務(wù)器返回json數(shù)據(jù),解析之后顯示在頁(yè)面上,同時(shí)將數(shù)據(jù)存本地?cái)?shù)據(jù)庫(kù)。用到的技術(shù)點(diǎn)有:網(wǎng)絡(luò)請(qǐng)求使用ASI庫(kù),解析json數(shù)據(jù)使用SBJson,顯示數(shù)據(jù)使用UITableView,存數(shù)據(jù)庫(kù)使用FMDB。主要代碼如下:@interfaceHomepageViewController(){DetailListTableView*_tableView;//頭置UIViewUIView*_headerView;//NSArray*imagesNormal;//NSArray*imagesSelect;}@end@implementationHomepageViewController-(void)viewDidLoad{[superviewDidLoad]; self.navigationTitle=@"創(chuàng)意生活";[selfsetNavigationBarRightButtonWithTitleName:@"篩選"target:selfaction:@selector(chooseClicked)];imagesNormal=[[NSArrayalloc]initWithObjects:@"btn_價(jià)格_點(diǎn)擊前.png",@"btn_銷(xiāo)量_點(diǎn)擊前.png",@"btn_人氣_點(diǎn)擊前.png",nil];imagesSelect=[[NSArrayalloc]initWithObjects:@"btn_價(jià)格_點(diǎn)擊后.png",@"btn_銷(xiāo)量_點(diǎn)擊后.png",@"btn_人氣_點(diǎn)擊后.png",nil];[selfcreateHeaderView];[selfcreateTableView];[HttpRequestrequestWithUrlSting:HomePageUrlStringtarget:selfaciton:@selector(requestFinished:)];}分類(lèi)模塊:此頁(yè)面主要根據(jù)各個(gè)分類(lèi)顯示商品信息,包括兩級(jí)分類(lèi)。數(shù)據(jù)模型主要由一個(gè)二維數(shù)組實(shí)現(xiàn),同樣數(shù)據(jù)從后臺(tái)服務(wù)器取得。主要代碼如下:@interfaceSearchViewController(){ResultListTableView*_tableView;UIView*_searchView;UITextField*_searchTextField;}@end@implementationSearchViewController-(void)viewDidLoad{[superviewDidLoad]; self.navigationTitle=@"搜索";[selfcreateBackgroundImageView];[selfcreateSearchView];[selfcreateTableView];}搜素模塊代碼如下:搜索模塊實(shí)現(xiàn)的功能是,用戶輸入想要搜索的商品,之后請(qǐng)求服務(wù)器返回符合條件的商品列表信息,最后顯示到頁(yè)面上。商品點(diǎn)擊進(jìn)入購(gòu)買(mǎi)頁(yè)。主要技術(shù)點(diǎn)為請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)及顯示商品列表。@interfaceCategoryViewController(){NSMutableArray*_classDataArray;UITableView*_tableView;}@end@implementationCategoryViewController-(void)viewDidLoad{[superviewDidLoad]; self.navigationTitle=@"分類(lèi)";_classDataArray=[[NSMutableArrayalloc]init];[selfsetBackground];[selfstartLoadData];[selfcreateTableView];}我代模塊碼如下:此界面負(fù)責(zé)用戶的注冊(cè)和登錄功能,實(shí)現(xiàn)方法是加載Web頁(yè),調(diào)用淘寶官方注冊(cè)登錄界面。難點(diǎn)為web頁(yè)的加載。@interfaceIViewController(){UIWebView*_myWebView; }@end@implementationIViewController-(void)viewDidLoad{[superviewDidLoad]; self.navigationTitle=@"我的";[selfcreateWebView];}4.3各模塊功能的實(shí)現(xiàn)1.第一個(gè)模塊是主頁(yè)模塊,主頁(yè)模塊中又包含幾個(gè)子模塊。該頁(yè)面主要為用戶提供一些推薦的商品。首先該頁(yè)面的數(shù)據(jù)是從后臺(tái)服務(wù)器獲得,http請(qǐng)求方式為get方法,服務(wù)器數(shù)據(jù)的返回格式是json格式。代碼實(shí)現(xiàn)里用第三方庫(kù)ASI請(qǐng)求數(shù)據(jù),返回?cái)?shù)據(jù)用SBJSon解析。本頁(yè)數(shù)據(jù)會(huì)存本地?cái)?shù)據(jù)庫(kù)sqlite,方便下次打開(kāi)頁(yè)面或沒(méi)有網(wǎng)絡(luò)時(shí)可以正常很快地顯示數(shù)據(jù)。UI界面用ios框架UIKiit里的UITableView實(shí)現(xiàn)??梢院芎每焖俚仫@示數(shù)據(jù)。另外,該頁(yè)面具有篩選功能,可以分別選擇價(jià)格、銷(xiāo)量、人氣來(lái)展示不同的數(shù)據(jù)。該頁(yè)面的每個(gè)商品元素都可以點(diǎn)擊進(jìn)入到對(duì)應(yīng)的詳情頁(yè),改詳情頁(yè)是web頁(yè)面,使用WebView實(shí)現(xiàn)。設(shè)計(jì)成品圖如圖4-1所示圖4-1主頁(yè)模塊圖2.第二個(gè)模塊是分類(lèi)模塊,通過(guò)此頁(yè)面用戶可以方便地根據(jù)分類(lèi)來(lái)搜索到自己感興趣的商品,同樣,頁(yè)面用UITableView展示,每個(gè)cell是某一類(lèi),點(diǎn)擊之后可以進(jìn)入到子頁(yè)面,子頁(yè)面將顯示該類(lèi)的商品列表,子頁(yè)面同主頁(yè)面。另外,在該頁(yè)面中,用戶可以點(diǎn)擊右上角的分類(lèi),在頁(yè)面的的左邊彈出分類(lèi)信息,用戶可以切換類(lèi)別,瀏覽其他分類(lèi)商品。設(shè)計(jì)成品圖如圖4-2所示圖4-2分類(lèi)模塊圖3、搜索模塊。在這個(gè)頁(yè)面,用戶可以輸入想要搜索的商品,界面將返回符合搜索條件的商品。用戶可以快速找到自己想要的商品。如圖4-3所示圖4-3搜索模塊圖4.第四個(gè)模塊是我模塊登陸賬戶和密碼進(jìn)入,可進(jìn)行相關(guān)操作,完成圖如圖4-4所示圖4-4個(gè)人模塊圖5總結(jié)本課題由于采用的是純軟件開(kāi)發(fā)系統(tǒng),采用的系統(tǒng)又是很封閉的IOS系統(tǒng)而且對(duì)界面要求和內(nèi)存管理比較嚴(yán)格,故我有如下總結(jié):(1)UI界面要符合iphone一貫的風(fēng)格,動(dòng)畫(huà)要流暢,對(duì)于怎么設(shè)計(jì)可以隨意發(fā)揮自己想象。(2)內(nèi)存管理要注意,自己創(chuàng)建的對(duì)象要自己管理好自己的內(nèi)存,不要造成內(nèi)存過(guò)度釋放或者內(nèi)存泄漏而造成程序崩潰。(3)注意設(shè)計(jì)的算法,一本小說(shuō)很長(zhǎng)需要分割字符串,要確定怎么樣分割,然后要計(jì)算滿屏的字?jǐn)?shù),和下一頁(yè)的,這樣需要謹(jǐn)慎考慮和設(shè)計(jì)。(4)注意oc語(yǔ)言的風(fēng)格和程序的美觀性。(5)要熟練掌握Xib設(shè)計(jì)控件和代碼寫(xiě)控件。(6)要有嚴(yán)謹(jǐn)?shù)倪壿嬎季S能力和不斷嘗試的創(chuàng)新能力。總之這次畢業(yè)設(shè)計(jì)給我很大鼓勵(lì)和信心,我完成的不僅僅是一課題更加是對(duì)新東西的一種挑戰(zhàn),我對(duì)學(xué)過(guò)的書(shū)本知識(shí)有了更深的理解,同時(shí)也學(xué)到了許多書(shū)本上學(xué)不到的知識(shí)。另外,我在工程應(yīng)用、獨(dú)立分析解決問(wèn)題、科技論文寫(xiě)作等能力方面有了一定的提高,也了解了工程項(xiàng)目開(kāi)發(fā)的基本思路和方法。畢業(yè)設(shè)計(jì)是將平時(shí)所學(xué)的專業(yè)知識(shí)同實(shí)踐相結(jié)合的產(chǎn)物。在這次畢業(yè)設(shè)計(jì)中,我重新復(fù)習(xí)了相關(guān)的專業(yè)知識(shí),同時(shí)也查閱了大量的資料,對(duì)C語(yǔ)言、數(shù)據(jù)庫(kù)、oc語(yǔ)言、UI界面等基礎(chǔ)知識(shí)的重要性有了新的了解,這也為我以后的學(xué)習(xí)和工作指明了方向。致謝轉(zhuǎn)眼間即將畢業(yè)了,在這個(gè)時(shí)刻總會(huì)有一些不舍,一是自己學(xué)到的東西太少,對(duì)比以后將邊工作邊自我學(xué)習(xí)的日子,很懷念這樣全日制學(xué)習(xí)的時(shí)刻;二是這里有很多我們敬愛(ài)的老師和可愛(ài)的同學(xué)們。畢業(yè)設(shè)計(jì)成為了大學(xué)階段最后的學(xué)習(xí)標(biāo)記,同時(shí)也是檢驗(yàn)自我、增長(zhǎng)經(jīng)驗(yàn)的難得機(jī)會(huì)與體驗(yàn)。在完成畢業(yè)設(shè)計(jì)的過(guò)程中,每一次成功和進(jìn)步都是寶貴的財(cái)富。只有自己從頭到尾從選題、設(shè)計(jì)、查找資料、逐步完成,一步一步走過(guò)來(lái),才能切實(shí)發(fā)現(xiàn)自己的不足。而每次遇到困難,想辦法自我攻克難題,才有長(zhǎng)足的進(jìn)步。這次畢業(yè)設(shè)計(jì)使我能夠靜下心來(lái),集中注意力工作,逐漸讓我養(yǎng)成了良好的面對(duì)錯(cuò)誤的心態(tài)和編寫(xiě)程序的習(xí)慣,受益匪淺。同時(shí)漸漸掌握了自己的一套編寫(xiě)代碼,改正錯(cuò)誤的流程,成長(zhǎng)很大。第三是端正了自己的心態(tài),認(rèn)識(shí)到自己的不足,同時(shí)有信心能夠做得更好。在此特別感謝一下馮老師對(duì)我悉心的指導(dǎo),感謝老師給我的幫助和很多建議。

參考文獻(xiàn)[1]王志剛.編著應(yīng)用程序開(kāi)發(fā)攻略之iPhone特色傳感器應(yīng)用[M].北京:電子工業(yè)出版社,2011:2.[2]GeneBacklin(美)著.岳紅凌沖譯.iPhone&iPad高級(jí)編程[M].北京:清華大學(xué)出版社,2012:1.[3]Wei-MengLee(美)著.張龍譯.IOS4編程入門(mén)經(jīng)典[M].北京:清華大學(xué)出版社,2012:1.[4]虞斌著.Ios軟件開(kāi)發(fā)揭秘:iPhone&iPad企業(yè)應(yīng)用和游戲開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2011:1.[5]克萊爾(美)著.李強(qiáng)譯.Objective-C2.0Mac和ios開(kāi)發(fā)實(shí)踐指南[M].北京:機(jī)械工業(yè)出版社,2011:1.[6]BrianW.Kernighan,DeninisMRirchie(美)著,徐寶文,李志(譯)TheCProgrammingLanguage[M].北京:機(jī)械工業(yè)出版社2003:2.[7]徐松林,黃猛著.cocos2D-x手機(jī)游戲開(kāi)發(fā)[M].北京:人民郵電出版社.[8]Ronpatton(美)著.王鈺,曹躍譯.軟件測(cè)試[M].北京:機(jī)械工業(yè)出版社,2006:4.[9]王水著.軟件工程[M].河南:河南科學(xué)技術(shù)出版社,2008:8.[10]吳潔明著.軟件工程實(shí)例教程[M].北京:清華大學(xué)出版社,2010:11.[11]郭東恩著.數(shù)據(jù)庫(kù)原理及應(yīng)用[M].河南:河南科學(xué)技術(shù)出版社,2008:4.[12]DanPilone著.HeadFirstiPhoneDevelopment[M].北京:東南大學(xué)出版社,2012:1.[13]薩丹著.iPhone開(kāi)發(fā)秘籍[M].北京:人民郵電出版社,2010:1.[14]喬納森(美)著.AppStore掘金[M].北京:人民郵電出版社,2010:1.[15]哈靈頓(美)著.iOS4實(shí)戰(zhàn)[M].北京:人民郵電出版社,2012:1.

附錄該附錄附帶各頁(yè)面主要代碼,如下:1.主頁(yè)界面:-(void)createTableView{NSIntegerheight=0;if([DeviceManagerisiOS7Version]==YES){height=64;}_tableView=[[DetailListTableViewalloc]initWithFrame:CGRectMake(0,0,320,[DeviceManagercurrentDeviceScreenHeight]-height-49)];//_tableView.showsHorizontalScrollIndicator=NO;//_tableView.showsVerticalScrollIndicator=NO;_tableView.navController=self.navigationController;[self.viewaddSubview:_tableView];}-(void)createHeaderView{_headerView=[[UIViewalloc]initWithFrame:CGRectMake(0,-44,320,44)];[self.viewaddSubview:_headerView];NSArray*names=[[NSArrayalloc]initWithObjects:@"價(jià)格",@"銷(xiāo)量",@"人氣",nil];NSIntegerspaceWeidth=([UIScreenmainScreen].bounds.size.width-40-160)/2;NSIntegerheight=30;for(inti=0;i<3;i++){UIButton*btn=[UIButtonbuttonWithType:UIButtonTypeCustom];[btn.titleLabelsetTextAlignment:NSTextAlignmentRight];[btnsetFrame:CGRectMake(20+(spaceWeidth+40)*i,7,70,height)];btn.tag=100+i;[btnaddTarget:selfaction:@selector(viewBtnClicked:)forControlEvents:UIControlEventTouchUpInside];[_headerViewaddSubview:btn];UILabel*titleLabel=[[UILabelalloc]initWithFrame:CGRectMake(55+(spaceWeidth+40)*i,7,50,height)];titleLabel.text=[namesobjectAtIndex:i];titleLabel.backgroundColor=[UIColorclearColor];[titleLabelsetFont:[UIFontboldSystemFontOfSize:15]];[titleLabelsetTextColor:[UIColorgrayColor]];[_headerViewaddSubview:titleLabel];UIImageView*imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(30+(spaceWeidth+40)*i,10,20,20)];imageView.tag=200+i;imageView.image=[UIImageimageNamed:[imagesNormalobjectAtIndex:i]];[_headerViewaddSubview:imageView];if(i==2){imageView.image=[UIImageimageNamed:[imagesSelectobjectAtIndex:btn.tag-100]];}}}-(void)sortbyGoodRate{if(_tableView.dataArray.count>0){for(inti=0;i<_tableView.dataArray.count-1;i++){for(intj=0;j<_tableView.dataArray.count-1-i;j++){if(((HomePageModel*)[_tableView.dataArrayobjectAtIndex:j]).feedGoodCegerValue>((HomePageModel*)[_tableView.dataArrayobjectAtIndex:j+1]).feedGoodCegerValue){[_tableView.dataArrayexchangeObjectAtIndex:jwithObjectAtIndex:j+1];//NSLog(@"人氣:%@",((HomePageModel*)[_tableView.dataArrayobjectAtIndex:j]).feedGoodCount);}}}}[_tableViewreloadData];}//httpRequest請(qǐng)求-(void)requestFinished:(HttpRequest*)request{if(request.downloadData){idresult=[NSJSONSerializationJSONObjectWithData:request.downloadDataoptions:NSJSONReadingMutableContainerserror:nil];//json解析建立模型viewsif([resultisKindOfClass:[NSDictionaryclass]]){NSDictionary*dic=(NSDictionary*)result;//NSLog(@"dic=%@",dic);//JSon解析難點(diǎn):分析解析后得到的字典的結(jié)構(gòu)NSMutableArray*list=[dicobjectForKey:@"List"];NSMutableDictionary*valueZero=[listobjectAtIndex:0];NSMutableArray*secondList=[valueZeroobjectForKey:@"List"];NSMutableDictionary*secondListValueZero=[secondListobjectAtIndex:0];NSMutableArray*thirdList=[secondListValueZeroobjectForKey:@"List"];NSMutableDictionary*thirdListValueZero=[thirdListobjectAtIndex:0];NSString*idStr=[thirdListValueZeroobjectForKey:@"ID"];_tableView.urlId=idStr;[_tableViewloadData];}}}2.分類(lèi)模塊:-(void)createBackgroundImageView{UIImageView*bgImageView=[[UIImageViewalloc]initWithFrame:self.view.bounds];UIImage*bgImage=[UIImageimageNamed:@"背景"];bgImageView.image=bgImage;[self.viewaddSubview:bgImageView];}-(void)createSearchView{_searchView=[[UIViewalloc]initWithFrame:CGRectMake(0,0,320,50)];_searchView.backgroundColor=[UIColorclearColor];UIButton*searchButton=[UIButtonbuttonWithType:UIButtonTypeCustom];[searchButtonsetFrame:CGRectMake(10,10,300,31)];UIImage*searchImage=[UIImageimageNamed:@"搜索框"];[searchButtonsetBackgroundImage:searchImageforState:UIControlStateNormal];[searchButtonaddTarget:selfaction:@selector(clickedSearchButton:)forControlEvents:UIControlEventTouchUpInside];[_searchViewaddSubview:searchButton];_searchTextField=[[UITextFieldalloc]initWithFrame:CGRectMake(45,12,210,27)];_searchTextField.delegate=self;//_searchTextField.keyboardType=UIKeyboardTypeWebSearch;_searchTextField.placeholder=@"搜索商品";[_searchViewaddSubview:_searchTextField];[self.viewaddSubview:_searchView];}3.搜索模塊:-(void)setBackground{UIImageView*bgImageView=[[UIImageViewalloc]initWithFrame:CGRectMake(0,0,320,[DeviceManagercurrentDeviceScreenHeight])];UIImage*bgImage=[UIImageimageNamed:@"背景.png"];bgImageView.image=bgImage;[self.viewaddSubview:bgImageView];}-(ClassifictionNodeModel*)modelWithDataDic:(NSDictionary*)dataDic{ClassifictionNodeModel*model=[[ClassifictionNodeModelalloc]init];model.appName=[dataDicobjectForKey:@"AppName"];model.cateMap=[dataDicobjectForKey:@"CateMap"];model.displayName=[dataDicobjectForKey:@"DisplayName"];model.nodeId=[dataDicobjectForKey:@"ID"];model.imageUrl=[dataDicobjectForKey:@"ImageURL"];=[dataDicobjectForKey:@"Name"];model.parentId=[dataDicobjectForKey:@"ParentID"];model.url=[dataDicobjectForKey:@"URL"];returnmodel;}-(void)createTableView{_tableView=[[UITableViewalloc]initWithFrame:CGRectMake(0,0,320,[DeviceManagercurrentDeviceScreenHeight]-113)];_tableView.backgroundColor=[UIColorclearColor];_tableView.delegate=self;_tableView.dataSource=self;[self.viewaddSubview:_tableView];}#defineTitleArr[NSArrayarrayWithObjects:@"杯子水具",@"烹飪餐具",@"烘焙燒烤",@"節(jié)慶創(chuàng)意",@"居家雜件",@"家務(wù)清潔",@"儲(chǔ)物收納",@"衛(wèi)浴用具",@"日產(chǎn)化品",nil]-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{staticNSString*cellId=@"classifyCell";ClassifyCell*cell=[tableViewdequeueReusableCellWithIdentifier:cellId];if(cell==nil){cell=[[[NSBundlemainBundle]loadNibNamed:@"ClassifyCell"owner:0options:nil]lastObject];}ClassifictionNodeModel*model=[_classDataArrayobjectAtIndex:indexPath.row];NSMutableString*infoStr=[[NSMutableStringalloc]init];intn=0;for(ClassifictionNodeModel*subModelinmodel.list){//略過(guò)list中第一個(gè)子分類(lèi)的nameif(n==0){n=1;continue;}[infoStrappendString:[NSStringstringWithFormat:@"%@/",subM]];}[cellfillDataWithImageName:[TitleArrobjectAtIndex:indexPath.row]title:info:infoStr];returncell;}-(void)tableView:(UITableView*)tableViewdidSelectRowAtIndexPath:(NSIndexPath*)indexPath{Catagory_SubViewController*csVC=[[Catagory_SubViewControlleralloc]init];csVC.listDataArray=[NSArrayarrayWithArray:[[_classDataArrayobjectAtIndex:indexPath.row]list]];csVC.navigationTitle=[[_classDataArrayobjectAtIndex:indexPath.row]name];[self.navigationControllerpushViewController:csVCanimated:YES];}4.我的模塊:-(void)createWebView{_myWebView=[[UIWebViewalloc]initWithFrame:CGRectMake(0,0,320,[DeviceManagercurrentDeviceScreenHeight]-49)];NSURL*url=[NSURLURLWithString:urlStr];NSURLRequest*request=[NSURLRequestrequestWithURL:url];[_myWebViewloadRequest:request];_myWebView.delegate=self;[self.viewaddSubview:_myWebView];}#pragmamark-UIWebViewDelegate//開(kāi)始加載網(wǎng)頁(yè)的時(shí)候,調(diào)用此方法-(void)webViewDidStartLoad:(UIWebView*)webView{[SVProgressHUDshowInView:self.view];}//加載完成的時(shí)候,調(diào)用此方法-(void)webViewDidFinishLoad:(UIWebView*)webView{[SVProgressHUDdismiss];}//加載失敗的時(shí)候,調(diào)用此方法-(void)webView:(UIWebView*)webViewdidFailLoadWithError:(NSError*)error{[SVProgressHUDdismiss];}-(void)goForward{NSLog(@"%@",[NSStringstringWithContentsOfURL:_myWebView.request.URLencoding:NSUTF8StringEncodingerror:nil]);[_myWebViewgoForward];}本科畢業(yè)設(shè)計(jì)開(kāi)題報(bào)告題目:創(chuàng)意生活館iOS客戶端開(kāi)發(fā)學(xué)院:學(xué)生姓名:專業(yè):班級(jí)學(xué)號(hào):指導(dǎo)教師姓名:指導(dǎo)教師職稱:年月日學(xué)生姓名專業(yè)班級(jí)學(xué)號(hào)指導(dǎo)教師職稱所在學(xué)院題目創(chuàng)意生活館iOS客戶端開(kāi)發(fā)選題依據(jù):風(fēng)起云涌的高科技時(shí)代,智能終端的普及不僅推動(dòng)了移動(dòng)互聯(lián)網(wǎng)的發(fā)展,也帶來(lái)了移動(dòng)APP應(yīng)用的爆炸式增長(zhǎng)。伴隨消費(fèi)者移動(dòng)設(shè)備使用目的的轉(zhuǎn)變,移動(dòng)購(gòu)物開(kāi)始挑戰(zhàn)傳統(tǒng)購(gòu)物和PC購(gòu)物模式,成為各大電商力捧的新盈利點(diǎn)。

在每一個(gè)垂直領(lǐng)域內(nèi),app能夠快速幫助人們實(shí)現(xiàn)想要做的事情,資訊,社交聊天,訂票,當(dāng)然少不了購(gòu)物。傳統(tǒng)的pc端,人們只能靠瀏覽器打開(kāi)網(wǎng)頁(yè),在網(wǎng)站上購(gòu)物,而網(wǎng)站上信息量龐大繁雜,不容易找到自己想要的商品。移動(dòng)端購(gòu)物客戶端的出現(xiàn),可以幫助人們快速找到自己想要的商品,并快捷安全地完成支付功能。本創(chuàng)意生活館手機(jī)網(wǎng)上購(gòu)物系統(tǒng)可以實(shí)現(xiàn)在iphone終端上的創(chuàng)意商品的瀏覽,還可按類(lèi)別搜索創(chuàng)意生活用品,用戶可根據(jù)自己的需要來(lái)瀏覽選擇商品。能夠獲得最新的最流行的創(chuàng)意商品,讓生活緊跟時(shí)代的前沿,讓生活變得更加人性化,讓生活變得更簡(jiǎn)

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論