掌廚手機客戶端設(shè)計與實現(xiàn)_第1頁
掌廚手機客戶端設(shè)計與實現(xiàn)_第2頁
掌廚手機客戶端設(shè)計與實現(xiàn)_第3頁
掌廚手機客戶端設(shè)計與實現(xiàn)_第4頁
掌廚手機客戶端設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 本科畢業(yè)論文(設(shè)計) 題 目: 掌 廚 學 院: 專業(yè)年級: 學 號: 學生姓名: 指導(dǎo)教師姓名: 指導(dǎo)教師職稱: 年 月 日摘 要隨著計算機網(wǎng)絡(luò)通信技術(shù)和Internet的飛速發(fā)展,基于因特網(wǎng)的手機移動應(yīng)用已經(jīng)開始成為一種全新的功能需求,并且越來越受到人們的關(guān)注。由于移動應(yīng)用具有簡單性,隨時隨地性等諸多特點,因此它有著傳統(tǒng)計算機所無法比擬的優(yōu)點。這樣一來,手機移動應(yīng)用的開發(fā)工作就顯得尤為重要。并且隨著生活水平的提高,人們對于吃的要求也是越來越高,所以一款關(guān)于美食應(yīng)用軟件的開發(fā)也會符合人們的需求。本文主要介紹了iOS平臺以及基于該平臺的美食教程應(yīng)用軟件的開發(fā)過程,詳盡論述了從需求分析、系統(tǒng)分

2、析、概要設(shè)計、詳細設(shè)計、以及測試與調(diào)試的整個開發(fā)過程,總結(jié)了開發(fā)過程中的經(jīng)驗及本系統(tǒng)今后的改進方向。Xcode 5.0開發(fā)工具,采用成熟的軟件研制技術(shù),后臺數(shù)據(jù)庫采用SQLite3。關(guān)鍵字:iOS開發(fā) 美食應(yīng)用軟件 Xcode SQLite3AbstractWith the rapid development of computer network communication technology and Internet, mobile application based on Internet has begun to become a kind of new functional req

3、uirements, and more and more get the attention of people.Because the mobile applications has simplicity, sex anytime and anywhere, and many other features, so it has the advantages of traditional computer.As a result, mobile application development work is particularly important.And with the improve

4、ment of living standards, people also more and more high to the requirement of eating, so a about food application software development also will meet the demand of people.IOS is mainly introduced in this paper, and based on the platform of food tutorial application software development process, det

5、ailed discussed from the requirement analysis, system analysis, general design, detailed design, and testing and debugging of the whole development process, summed up the experience in the process of development and the improvement direction of the system in the future. Xcode 5.0 development tools,

6、USES the mature software development technology, background database using SQLite3.Key Words : IOS Develop Food applications Xcode SQLite3。目錄1引言11.1掌廚應(yīng)用的意義11.2 IOS開發(fā)的研究現(xiàn)狀12技術(shù)基礎(chǔ)33系統(tǒng)分析與設(shè)計53.1需求分析53.1.1 編寫目的53.1.2 開發(fā)的軟件硬件要求53.2總體設(shè)計53.2.1主要功能53.2.2軟件結(jié)構(gòu)示意圖63.3詳細設(shè)計63.3.1主界面設(shè)計63.3.2對癥治療界面設(shè)計73.3.3熱門推薦界面設(shè)計83

7、.3.4搖一搖界面設(shè)計93.3.5萬道菜界面設(shè)計103.3.6菜品詳情界面設(shè)計113.3.7二維碼界面設(shè)計113.3.8登錄與注冊界面設(shè)計113.3.9“我的”界面設(shè)計123.3.10收藏界面設(shè)計133.3.11五層搜索界面設(shè)計134系統(tǒng)實現(xiàn)154.1各界面的實現(xiàn)154.1.1主界面的實現(xiàn)154.1.2對癥食療界面的實現(xiàn)154.1.3 熱門推薦界面的實現(xiàn)174.1.4搖一搖界面的實現(xiàn)184.1.5萬道菜界面的實現(xiàn)194.1.6菜品詳情界面的實現(xiàn)204.1.7二維碼界面的實現(xiàn)214.1.8登錄與注冊界面的實現(xiàn)214.1.9“我的”界面的實現(xiàn)224.1.10收藏界面的實現(xiàn)234.1.11五層搜索界

8、面的實現(xiàn)254.2實現(xiàn)系統(tǒng)過程中遇到的關(guān)鍵問題254.3關(guān)鍵代碼255總結(jié)476致謝詞487參考文獻4851 引言1.1掌廚應(yīng)用的意義一款美食教程應(yīng)用軟件,精選萬道家常菜高清“同步視頻”,輕松一點,即可隨意瀏覽,擁有上萬道家常菜、上萬個同步視頻,如此卓越不凡,將全面顛覆您對美食軟件的認識。規(guī)模較大,菜譜數(shù)量近萬道,同步視頻數(shù)量近萬個,視頻品質(zhì)好,清晰度、流暢度好,為您帶來極致的視覺體驗。在掌廚客戶端,你可以體會到:萬道美食任您選,展示高清菜譜圖片,無限滑動帶來無限驚喜。萬個同步視頻邊看邊做,每道家常菜都配有“材料準備”與“制作過程”兩段視頻,兩段視頻與現(xiàn)實烹飪完全同步。提供多種檢索方式,包含智

9、能選菜、菜系搜索、口味搜索等47種快速搜索功能,還有隨機的搖一搖選菜功能無論您帶著哪種目的搜索,都會有所收獲。點擊輕松注冊,萬道美食任您收藏。點擊“我的”實現(xiàn)注冊,注冊成功,點擊每道菜上的紅心按鈕即可實現(xiàn)收藏,菜例即歸入收藏夾,以后便可隨查隨看。 1.2 IOS開發(fā)的研究現(xiàn)狀世界在發(fā)展,社會在進步,在信息化時代的今天,人們對于手機有了進一步的了解與應(yīng)用。隨著科技的發(fā)展,智能手機已經(jīng)成為了今天手機市場的主流產(chǎn)品,現(xiàn)在大部分的人都在用智能手機。智能手機的發(fā)展勢不可擋。現(xiàn)在常用的智能手機系統(tǒng)有:蘋果ios智能系統(tǒng)、安卓智能系統(tǒng)、塞班智能系統(tǒng)、軟智能手機系統(tǒng)、黑莓智能系統(tǒng)等等。毫無疑問,手機的智能化是

10、手機的一場革命?;ヂ?lián)網(wǎng)應(yīng)用的發(fā)展和3G網(wǎng)絡(luò)的成熟,3G智能手機成為最重要的終端載體,吸引了越來越多消費者利用智能手機網(wǎng)上沖浪、收發(fā)電子郵件、看電影、打游戲、視頻對話等。智能手機讓人們的生活變得越來越便捷,這就使得智能手機成為了消費者追捧的對象。現(xiàn)在,消費者已經(jīng)可以用具有支付、認證功能的手機來購買車票和電影票、打開大門、借書、充當會員卡,可以實現(xiàn)移動通信與金融服務(wù)的完美結(jié)合以及有線通信和無線通信的無縫過渡,讓消費者享受到方便安全的金融生活服務(wù)。其次,手機搜索將超過計算機搜索。再次,手機內(nèi)容共享。手機圖片、音頻、視頻共享被認為是3G手機業(yè)務(wù)的重要應(yīng)用。中國擁有者世界上最大規(guī)模的潛在移動互聯(lián)網(wǎng)市場,

11、而且由于文化等原因,中國移動互聯(lián)網(wǎng)市場有著自身較為特殊的需求。這使得生硬地照搬國外作品不一定能在國內(nèi)有較好的反響。實際上,如果國內(nèi)企業(yè)能針對國內(nèi)需開發(fā)軟件,或者對借鑒來的國外經(jīng)驗加以調(diào)整,反而能達到更好的經(jīng)濟效益。例如酒店達人軟件對于國內(nèi)賓館移動預(yù)定業(yè)務(wù)進行針對性的開發(fā)運作,在短時間內(nèi)就開始了盈利。蘋果ios系統(tǒng)作為高端機的智能系統(tǒng)截止至2011年11月,根據(jù)Canalys的數(shù)據(jù)顯示,iOS已經(jīng)占據(jù)了全球智能手機系統(tǒng)市場份額的30%,在美國的市場占有率為43%,并在逐漸的增加總之,在移動互聯(lián)網(wǎng)時代,傳統(tǒng)的信息產(chǎn)業(yè)運作模式正在被打破,新的運作模式正在形成。對于手機廠商、互聯(lián)網(wǎng)公司、消費電子公司和

12、網(wǎng)絡(luò)運營商來說,這既是機遇,也是挑戰(zhàn),他們積極參與到移動互聯(lián)網(wǎng)市場的市場競爭中。2 技術(shù)基礎(chǔ)移動app顧名思義就是手機軟件app,也叫移動終端,手機客戶終端,移動軟件,手機應(yīng)用軟件等,屬于移動設(shè)備上面運行的一款終端軟件。在移動互聯(lián)網(wǎng)風生水起的時代,移動app已經(jīng)越來越深入人心,app應(yīng)用開發(fā)市場突飛猛進,成為了移動互聯(lián)網(wǎng)的主流。掌廚是基于app的開發(fā)理論基礎(chǔ)而實現(xiàn)的,首先是基于移動終端上的隨身性,互動性通過新技術(shù)以及數(shù)據(jù)分析,實現(xiàn)了精準定位企業(yè)目標用戶。其次軟件開發(fā)是一個復(fù)雜的過程,軟件過程可以通過軟件過程模型來表示。概念模式是非常重要的,它是指人們在認識事物的過程中,對于某一事物或者系統(tǒng)形成

13、的抽象的一般化的框架,是在人們長期的實踐活動中實現(xiàn)的,概念模式簡單明了,易于理解。概念模式具有相對性,面對不同的用途會有不同形式的概念模型,各有各的用處。軟件開發(fā)中有常見的其中概念模式,結(jié)構(gòu)圖,數(shù)據(jù)流程圖,實體關(guān)系圖等等,這些概念模式都是為了實現(xiàn)軟件的易于理解性。iOS簡介: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

14、年11月,iOS占據(jù)了全球智能手機系統(tǒng)市場份額的30%,在美國的市場占有率更是達到了43%。隨著Andriod開源操作系統(tǒng)的異軍突起以及WindowsPhone的發(fā)力,iOS市場份額正被一點點的蠶食,但是iOS設(shè)備的利潤率高的驚人,以智能手機為例,iphone的利潤額占到整個智能手機利潤額的80%,受益于此,蘋果的市值也達到了5000億美元。Objective-c簡介:Objective-C是非?!皩嶋H”的語言。它使用一個用C寫成的運行庫,只會令應(yīng)用程序的大小增加很小。Objective-C寫成的程序通常不會比其源代碼大很多。而其函數(shù)庫(通常附在軟件發(fā)行本)亦和Smalltalk系統(tǒng)要使用極大

15、的內(nèi)存來開啟一個窗口的情況相反。Objective-C的最初版本并不支持垃圾回收。在當時這是爭論的焦點之一,很多人考慮到Smalltalk回收時有漫長的“死亡時間”,令整個系統(tǒng)失去功用。Objective-C為避免此問題才不擁有這個功能。雖然某些第三方版本已經(jīng)加入這個功能(尤其是GNUstep),再起MacOSX10.3中仍未引入這個功能。不過令人欣慰的是在Apple發(fā)布的XCode4中已經(jīng)支持自動釋放,在xCode4中的自動釋放,也就是ARC(AutomaticReferenceCounting)機制,是不需要用戶手動去Release一個對象,而是在編譯期間,編譯器會自動幫你添加那些以前你經(jīng)

16、常寫的NSObjectrelease。另一個問題是ObjC不包括命名空間機制(namespacemechanism)。取而代之的是程序設(shè)計師必須在其類別名稱加上前綴,時常引致沖突。在2004年,在Cocoa編程環(huán)境中,所有MacOSX類別和函式均有“NS”作為前綴,例如NSObject或NSButton來清楚分別它們屬于MacOSX核心;使用“NS”是由于這些類別的名稱在NeXTSTEP開發(fā)時定下。雖然Objective-C是C的母集,但它也不視C的基本型別為第一級的對象。和C+不同,Objective-C不支援運算子多載(它不支持ad-hoc多型)。亦與C+不同,但和Java相同,Objec

17、tive-C只容許對象繼承一個類別(不設(shè)多重繼承)。Categories和protocols不但可以提供很多多重繼承的好處,而且沒有很多缺點,例如額外執(zhí)行時間過重和二進制不兼容。由于Obj-C使用動態(tài)運行時類型,而且所有的方法都是函數(shù)調(diào)用(有時甚至連系統(tǒng)調(diào)用(syscalls)也如此),很多常見的編譯時性能優(yōu)化方法都不能應(yīng)用于Obj-C(例如:內(nèi)聯(lián)函數(shù)、常數(shù)傳播、交互式優(yōu)化、純量取代與聚集等)。這使得Obj-C性能劣于類似的對象抽象語言(如C+)。不過Obj-C擁護者認為既然Obj-C運行時消耗較大,Obj-C本來就不應(yīng)應(yīng)用于C+或Java常見的底層抽象ios系統(tǒng)框架:iOS的系統(tǒng)架構(gòu)和其操作

18、系統(tǒng)一樣,采用了分層的架構(gòu)。iOS分為四層,分別為核心操作系統(tǒng)(theCoreOSlayer),核心服務(wù)層(theCoreServiceslayer),媒體層(theMedialayer),Cocoa觸摸架構(gòu)層(theCocoaTouchlayer)。 SQLite數(shù)據(jù)庫介紹:SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如Tcl、C#、PHP

19、、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月.至今已經(jīng)有10個年頭,SQLite也迎來了一個版本SQLite3已經(jīng)發(fā)布。Xcode整合的AppleReferenceLibrary為所有的Apple開發(fā)者文件提供一個單獨的搜索和顯示界面,這些文件包括來自蘋果電腦公司網(wǎng)站的在線文件,以及存放在你電腦上的文件。新的參考資料庫甚至可以幫你將定期更新資料下載到你的電腦,保持文件的最新狀態(tài)。Xcode將幫你快速找到最新的答案。Xcode將賦予你創(chuàng)建諸如計算和渲染引

20、擎應(yīng)用程序的能力,這些應(yīng)用程序使用64位內(nèi)存定址。這非常適合數(shù)據(jù)集中的應(yīng)用程序,其通過訪問內(nèi)存中的數(shù)據(jù)運行速度更快,遠勝于磁盤訪問。Xcode將為你提供工具來建立并調(diào)試適合IntelCorei5,i7和MacOSXLion的32或64位應(yīng)用程序,還可以讓你創(chuàng)建包含32位和64位執(zhí)行能力的FatBinaries。眾所周知,在構(gòu)建中引進多重處理器可以提高速度,Xcode能幫你實現(xiàn)這個明顯的結(jié)論。利用支持Rendezvous的分布式構(gòu)建功能,可以輕易地把編譯工作量分散到閑置的電腦上來寄放構(gòu)建,或者更好是在單獨的電腦上開發(fā)一個專門的Xserve構(gòu)建寄放區(qū),快速處理那些耗時的任務(wù)。3 系統(tǒng)分析與設(shè)計3.

21、1 需求分析3.1.1 編寫目的“養(yǎng)生之道,莫先于食?!崩檬澄锏臓I養(yǎng)來防治疾病,可促進健康長壽。通過調(diào)整飲食來補養(yǎng)臟腑功能,促進身體健康和疾病的康。俗話說:“藥補不如食補?!彼^食補,就是食補能起到藥物所無法起到的作用。在我國,利用調(diào)整飲食作為一種養(yǎng)生健身手段有著悠久的歷史,比如唐代名醫(yī)孫思邈對飲食養(yǎng)生作了重大貢獻,他認為,老年人疾病的治療,首先要注重飲食。因為“食能排邪而安臟腑悅神爽志以資氣血,而藥性烈,猶若御兵,藥勢有所偏助,令人臟氣不平,易受外患,所以若能用食平疴,適性遣疾,最易收養(yǎng)生之效益”。飲食是人類維持生命的基本條件,而要使人活得健康愉快、充滿活力和智慧,則不僅僅滿足于吃飽肚子,

22、還必須考慮飲食的合理調(diào)配,保證人體所需的各種營養(yǎng)素的攝入平衡且充足,并且能被人體充分吸收利用。掌廚給了人們更多的選擇,上萬道菜品展示,上萬道美食制作視頻,讓人們輕松擁有精湛的廚藝,及合理的搭配,讓你做出來的飯菜不在單調(diào),并且更加有營養(yǎng)。這就是編寫掌廚的目的。3.1.2 開發(fā)的軟件硬件要求硬件:主流配置 pc機(裝黑蘋果,大多數(shù)主流硬件的驅(qū)動都能找到,但還是推薦虛擬),iMac或Macbook Air或Macbook Pro軟件:虛擬機VM + Mac OS 系統(tǒng)鏡像,X-Code在虛擬Mac中安裝,蘋果免費提供),Mac OS,X-CodeiOS設(shè)備:iPhone、iPad、iPod3.2 總

23、體設(shè)計3.2.1 主要功能a.萬道美食任你選:展現(xiàn)高清菜譜圖片,無限滑動帶來無限驚喜。b.提供多種檢索方式:包含智能選菜、菜系搜索、口味搜索以及搖一搖選菜。c.菜品制作視頻及四大相關(guān)信息板塊,迅速成為掌廚達人。d.輕松注冊登錄,美食任你收藏。e.對癥食療,健康美食生活3.2.2 軟件結(jié)構(gòu)示意圖3.3 詳細設(shè)計3.3.1 主界面設(shè)計圖3.2 主界面設(shè)計3.3.2 對癥治療界面設(shè)計點擊主界面上對癥治療進入相應(yīng)界面出現(xiàn)多種類別 點擊類別出現(xiàn)多種相應(yīng)病狀 3.3.3 熱門推薦界面設(shè)計圖3.4 熱門推薦界面設(shè)計點擊主界面上熱門推薦出現(xiàn)多種菜品3.3.4 搖一搖界面設(shè)計點擊主界面上搖一搖進入搖一搖界面 搖

24、晃手機后隨機出現(xiàn)一款美食圖3.5 搖一搖界面設(shè)計 3.3.5 萬道菜界面設(shè)計圖3.6 萬道菜界面設(shè)計點擊主界面上萬道美食進入萬道菜界面3.3.6 菜品詳情界面設(shè)計點擊菜品后出現(xiàn)相應(yīng)菜品的材料,相關(guān)常識,相宜相克,做法3.3.7 二維碼界面設(shè)計點擊主界面上二維碼進入到二維碼界面 3.3.8 登錄與注冊界面設(shè)計點擊主界面上“我的”自動進入到登陸注冊界面 3.3.9 “我的”界面設(shè)計點擊主界面上的我的進入到我的界面3.3.10收藏界面設(shè)計點擊我的界面中的我的收藏后出現(xiàn)我的收藏界面點擊菜品下的紅心,可以收藏該菜品,收藏后彈出收藏成功對話框,點擊確定后可以在我的收藏界面中查看該菜品3.3.11五層搜索界

25、面設(shè)計4 系統(tǒng)實現(xiàn)4.1 各界面的實現(xiàn)4.1.1 主界面的實現(xiàn)點擊主界面上的相應(yīng)功能進入到相應(yīng)的功能模塊4.1.2 對癥食療界面的實現(xiàn)圖4.2-a 對癥食療界面實現(xiàn)點擊科目出現(xiàn)具體病狀 點擊具體病狀出現(xiàn)病狀詳情點擊詳情出現(xiàn)病狀的詳情及相關(guān)的飲食保健 點擊相應(yīng)菜品可看菜品詳情4.1.3 熱門推薦界面的實現(xiàn)點擊主界面上的熱門推薦進入到熱門推薦界面,點擊相應(yīng)菜品,可看菜品詳情4.1.4搖一搖界面的實現(xiàn)點擊主界面上的搖一搖進入到搖一搖界面搖晃手機后出現(xiàn)相應(yīng)的菜品 4.1.5萬道菜界面的實現(xiàn)點擊主界面上的萬道菜進入萬道菜界面,點擊相應(yīng)菜品可看菜品詳情 圖4.5 萬道菜界面實現(xiàn) 4.1.6菜品詳情界面的實

26、現(xiàn)點擊菜品后進入菜品詳情界面4.1.7二維碼界面的實現(xiàn)點擊主界面上的二維碼進入到二維碼界面4.1.8登錄與注冊界面的實現(xiàn)4.1.9“我的”界面的實現(xiàn)點擊主界面上的“我的”進入我的界面,點擊我的收藏可進入收藏界面4.1.10收藏界面的實現(xiàn)點擊我的界面中的我的收藏后出現(xiàn)我的收藏界面,點擊菜品下的紅心,可以收藏該菜品,收藏后彈出收藏成功對話框,點擊確定后可以在我的收藏界面中查看該菜品點擊編輯,進入編輯界面可刪除菜品點擊完成后日退出編輯界面 4.1.11五層搜索界面的實現(xiàn)點擊主界面上的搜索,進入到搜索界面4.2 實現(xiàn)系統(tǒng)過程中遇到的關(guān)鍵問題 小組件比較多,寫成復(fù)用,工作量較大導(dǎo)入第三方庫及整合代碼4.

27、3 關(guān)鍵代碼- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil self = super initWithNibName:nibNameOrNil bundle:nibBundleOrNil; if (self) self initMember; return self;- (void)viewDidLoad super viewDidLoad; self uiConfig; self loadData;#pragma mark - QFTable View DataSource- (

28、CGFloat)QFTableView:(QFTableView *)fanView widthForIndex:(NSInteger)index return 320;- (NSInteger)numberOfIndexForQFTableView:(QFTableView *)fanView return _mainArray.count;- (void)QFTableView:(QFTableView *)fanView setContentView:(UIView *)contentView ForIndex:(NSInteger)index LLCMainModel *model =

29、 _mainArray objectAtIndex:index; UIImageView *pictureImageView = (UIImageView *)contentView; pictureImageView setImageWithURL:NSURL URLWithString:model.imagePathLandscape placeholderImage:UIImage imageNamed:defaultImage.png;- (UIView *)QFTableView:(QFTableView *)fanView targetRect:(CGRect)targetRect

30、 ForIndex:(NSInteger)index UIImageView *pictureImageView = UIImageView alloc initWithFrame:targetRect; return pictureImageView;#pragma mark QFTable View Delegate#pragma mark 點選cell, 彈入視頻界面- (void)QFTableView:(QFTableView *)fanView selectIndex:(NSInteger)index LLCVideoViewController *vVC = LLCVideoVi

31、ewController alloc init; vVC.dataArray = _mainArray; vVC.currentIndex = index; self.navigationController pushViewController:vVC animated:YES;#pragma mark 翻頁- (void)QFTableView:(QFTableView *)fanView scrollToIndex:(NSInteger)index if (index _mainArray.count-1) return; if (_mainArray.count 0 & index -

32、1) LLCMainModel *model = _mainArray objectAtIndex:index; _dateIntroduce.foodNameLabel.text = ; _dateIntroduce.foodPinYinName.text = model.englishName; _pageControl lightPointBeforePage:index; #pragma mark 讀取更多- (void)llcTableViewLoadMoreData if (_isLoading) return; / 加載hud UIView *oldHud =

33、 self.view viewWithTag:kHUD_Tag; if (oldHud != nil) oldHud removeFromSuperview; LLCFacilityHUD *hud = LLCFacilityHUD alloc initWithPosition:self.view.center; hud.tag = kHUD_Tag; self.view addSubview:hud; hud loading; _isLoading = YES; _requestModel.page+; NSString *mainUrlString = NSString stringWit

34、hFormat:kMain_Url, _requestModel.page, _requestModel.user_id; DMPHttpRequest requestWithUrlString:mainUrlString isRefresh:NO delegate:self tag:eMainRequest;#pragma mark - DMP HttpRequest Delegate#pragma mark 數(shù)據(jù)請求完成- (void)dmpHttpRequestDidFinished:(DMPHttpRequest *)request if (request.downloadData)

35、switch (request.tag) case eDateRequest: self loadMainDateData:request.downloadData; _isLoading = NO; break; case eMainRequest: if (_mainArray.count 0) self loadMainData:request.downloadData completion: _pageControl.pageCount = _mainArray.count; _pageControl extinguishPointsAfterPage:_mainArray.count

36、-8; _isLoading = NO; ; else self loadMainData:request.downloadData completion: _isLoading = NO; ; break; case eQRRequest: self getQRResultDataWithDownloadData:request.downloadData; LLCVideoViewController *vVC = LLCVideoViewController alloc init; vVC.currentIndex = 0; vVC loadSingleFoodWithVegetableI

37、D:self.qrResultModel.vegetable_id; self.navigationController pushViewController:vVC animated:YES; LLCFacilityHUD hudSuccessAppearOnView:self.view; break; default: break; #pragma mark 數(shù)據(jù)請求失敗- (void)dmpHttpRequest:(DMPHttpRequest *)request DidFailWithError:(NSError *)error LLCFacilityHUD *hudView = (L

38、LCFacilityHUD *)self.view viewWithTag:kHUD_Tag; if (hudView != nil) hudView failed; _isLoading = NO;#pragma mark - 讀取數(shù)據(jù)#pragma mark 日期數(shù)據(jù)- (void)loadMainDateData:(NSData *)downloadData id result = NSJSONSerialization JSONObjectWithData:downloadData options:NSJSONReadingMutableContainers error:nil; if

39、 (result isKindOfClass:NSDictionary class) NSDictionary *theResults = (NSDictionary *)result; NSArray *datesIntroduce = theResults objectForKey:data; _dateArray addObjectsFromArray: LLCWonderfulModel achieveJSONModelsWithDataAndElementNames:datesIntroduce isNodeNamesEqualToPropertyNames:YES modelCla

40、ssNameAndValueNames:LLCMainDateModel, alertInfoAvoid, alertInfoFitting, LunarCalendar, nil; LLCMainDateModel *model = _dateArray objectAtIndex:0; _dateIntroduce.ddLabel.text = _requestModel.day; _dateIntroduce.yyMMLabel.text = NSString stringWithFormat:%-%, _requestModel.year, _requestModel.month; _

41、dateIntroduce.avoidContent = model.alertInfoAvoid; _dateIntroduce.fittingContent = model.alertInfoFitting; _dateIntroduce.oldDateLabel.text = NSString stringWithFormat:農(nóng)歷%, model.LunarCalendar; _dateIntroduce lanuchContent; #pragma mark 主界面數(shù)據(jù)- (void)loadMainData:(NSData *)downloadData completion:(vo

42、id () (void)completion id result = NSJSONSerialization JSONObjectWithData:downloadData options:NSJSONReadingMutableContainers error:nil; if (result isKindOfClass:NSDictionary class) NSDictionary *theResults = (NSDictionary *)result; NSArray *mainsArray = theResults objectForKey:data; for (NSDictiona

43、ry *aDic in mainsArray) LLCMainModel *model = LLCMainModel alloc init; model setValuesForKeysWithDictionary:aDic; _mainArray addObject:model; if (_mainArray.count 9) LLCMainModel *model = _mainArray objectAtIndex:0; _dateIntroduce.foodNameLabel.text = ; _dateIntroduce.foodPinYinName.text =

44、 model.englishName; if (completion) completion(); LLCFacilityHUD *hud = (LLCFacilityHUD *)self.view viewWithTag:kHUD_Tag; hud successed; _tableView reloadData;#pragma mark - Private#pragma mark 讀取數(shù)據(jù)- (void)loadData NSDate *today = NSDate date; NSDateFormatter *formatter = NSDateFormatter alloc init;

45、 formatter setDateFormat:yyyy-MM-dd; NSString *date = formatter stringFromDate:today; NSArray *datesComponet = date componentsSeparatedByString:-; _requestModel = LLCRequestModel alloc init; _requestModel.year = datesComponet objectAtIndex:0; _requestModel.month = datesComponet objectAtIndex:1; _req

46、uestModel.day = datesComponet objectAtIndex:2; _requestModel.page = 1; NSString *dateUrlString = NSString stringWithFormat: kMainDate_Url, _requestModel.year, _requestModel.month, _requestModel.day; DMPHttpRequest requestWithUrlString:dateUrlString isRefresh:NO delegate:self tag:eDateRequest; NSStri

47、ng *mainUrlString = NSString stringWithFormat:kMain_Url, _requestModel.page, _requestModel.user_id; DMPHttpRequest requestWithUrlString:mainUrlString isRefresh:NO delegate:self tag:eMainRequest;#pragma mark tabbar點擊響應(yīng)- (void) tarBarItemPress:(UIButton *)btn switch (btn.tag) case eTarBarDiseaseDietButton: DMPDietTherapyVC * dietVC = DMPDietTherapy

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論