久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

ios簡歷項目怎么寫(精選多篇)

時間:2021-01-11 08:40:08下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《ios簡歷項目怎么寫》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《ios簡歷項目怎么寫》。

第一篇:ios簡歷項目怎么寫

如果你是HR,若需要招聘一個ios開發工程師,有50位應屆生投遞簡歷,他們專業技能一致,項目經驗也大同小異,那你該怎么選擇面試者?以下是寫寫幫文庫小編整理的ios簡歷項目怎么寫,以供大家參考。

ios簡歷項目怎么寫:

項目經歷

2011/05 –2011/10

IOS項目圖片處理、分享、點評程序

負責項目的整體架構設計及服務器端接口的開發

負責圖片處理濾鏡的設計實現、圖片縮放、裁剪、旋轉等效果的實現 ?

負責系統數據加密算法的實現

2010/08 –2011/04 基于IOS的“雙扣撲克”游戲客戶端

負責撲克游戲的整體UI的設計和用戶接口邏輯的實現 ? 負責服務器端游戲邏輯及接口的實現

負責游戲數據傳輸協議的設計及加密解密算法實現

2009/11 –2010/07 ANDROID項目

基于Google Android 1.0平臺的樣機開發

參與Calling模塊的開發并負責RIL底層接口的改進設計 2007/11 –2009/10 XPIXL項目(ZN5)

基于摩托羅拉LJ6.3平臺的高端手機 ? 參與Messaging模塊的設計開發

項目期間的工作表現獲得Moto Bravo!Award

2007/05 –2007/10 YONGXING項目

基于摩托羅拉LJ7.2平臺的中高端手機 ?

參與Messaging模塊的改進設計

2007/01 – 2007/05 DRAGONFLY項目

基于TI的Locosto平臺的低端手機

經歷了從產品FDS開始的完整開發流程,參與了短信模塊的SRS、SDS、SIS的編寫,短信模塊的改進

第二篇:ios簡歷自我評價

ios簡歷自我評價

ios簡歷自我評價1

英語本科畢業,獲得學士學位,英語聽說能力良好,穩重認真,具有教師資格證,五年英語教師經驗并參與一系列英語教材的編輯工作。責任心強,具有團隊精神。樂于接受挑戰,能夠適應在壓力下工作。

待人真誠、自信樂觀、謙虛穩重、做事認真負責,勇于挑戰自我;有較強的組織能力,有較好的團隊協作精神,具備較強的`學習能力,相信自己能很快融入單位,為其創造價值。我一直在不斷提升自己努力成為“多元化復合型人才”,對于未來我滿懷信心,我認為確立明確目標對于個人發展非常重要,相信“適合”永遠是最好的!

極強的自學能力,高度的責任心,很強的可塑性,熱愛工作,熱愛生活,誠實守信,與人為善,孝順父母,關心他人。不以物喜,不以己悲。在遇到挫折時,堅信:只要有1%的希望,就要付出100%的努力。真誠地希望我的加入為貴單位帶來可觀的效益。

ios簡歷自我評價2

本人性格溫和但不缺少主見,為人沉穩也不失創意,對任何事情都非常有耐心,有較好的溝通能力及文化素養;

對編程有著濃厚的.興趣,有較好的心理素質和抗壓能力,對工作積極努力,吃苦耐勞。喜歡接受新事物,求知欲強,學習能力較強;

在工作中,有較強的團體合作意識,總是與同事融洽相處。積極向上、充滿熱情的我希望能得到您的認可。

ios簡歷自我評價3

1、適應能力強,能夠快速適應新環境;

2、工作認真,能夠按時完成項目開發;

3、學習能力強,對新技術有強烈的追求;

4、樂于與同事交流溝通,能夠快速解決項目中遇到的'問題。

5、能夠快速解決項目中遇到的問題;

ios簡歷自我評價4

3年iOS開發經驗,獨立承擔過多款產品研發,多款App已上線,熟練掌握C、OC編程語言,UI系統控件及自定義控件,熟練使用Quartz2D、Core Animation、觸摸事件處理、物理仿真等技術,熟練掌握常用的設計模式;

熟練掌握JSON、XML解析,FMDB、CoreData對SQLite數據庫進行操作,TCP、UDP網絡傳輸協議,多線程,熟練掌握文件操作,常見本地數據持久化方法,熟悉蘋果APNS推送機制,掌握極光推送的`實現以及本地推送的實現;

ios簡歷自我評價5

熟練掌握C、Object—C編程語言,熟練掌握IOS開發項目開發流程,熟悉項目模塊的開發,熟練掌握MVC、代理、單例、KVO等設計模式,有扎實的開發能力,具備獨立開發經驗,善于學習新知識;

有較強的時間觀念以及較強的邏輯分析和獨立解決問題的能力,良好的.代碼編程習慣,善于封裝常用工具類,適應能力強,能夠快速的學習并使用新知識;

第三篇:ios項目總結怎么寫

ios項目總結怎么寫

引導語:寫總結,必須實事求是,事實要準確,不能報喜不報優,不要夸大其詞。以下是小編搜集整理的ios項目總結怎么寫,歡迎大家閱讀!

篇一:ios項目總結范文

據說,今年是高校擴招以來,大學畢業生最多的一年,將超700萬,這么多大學生即將走入工作崗位。因此被人們戲稱為史上XX“最難就業年”。

我在今年7月份也即將拿到沉甸甸的大學畢業證書,與同班同學不同的是,我在畢業之前,就參加了無限互聯學習iOS開發,因為通過相關資料,我了解到現在的沒有經驗和技能的大學生是很難找到一份滿意的工作的,所以我期望通過參加技能培訓來提升自己的技能。經過將近4個月的學習,現在我將自己學習經驗,及我為什么會選擇iOS培訓學習iOS開發的原因分享給大家,希望對各位能有所幫助: 我之前從事的是質量檢驗的工作,工資很低,而且還沒有什么技術含量。想要跳槽,也很難找到滿意的工作。

這讓我很苦悶,于是想要進修,iOS又是當下熱門的一個行業,所以就選擇了iOS。我在北京的幾家培訓機構都進行了試聽,最終選擇了無限互聯3G學院。之所以選擇無限互聯是因為無限互聯無論在課程的安排,師資力量,還是就業這方面都是其他的培訓機構不能比的。

由于我并不是計算機專業畢業的,所以起初學起來有點困難。但是老師細致的授課方法和負責認真的授課態度使我建立信心。我相信只要我把老師課上教授的內容弄懂、弄透,我就不會被落下。我就開始一步一步跟著老師的腳步走。每天回家都要復習、消化這一天的內容,并加以練習。所以我的基礎知識學的特別的扎實。基礎知識階段是一個量的積累,量積累到一定的程度才會有質的飛躍。正因為我在基礎知識階段這種穩扎穩打的學法,才使我在最后一個月的項目實踐中有一個質的飛躍,能力上了一個臺階。

培訓結束之后,就開始找工作。因為從未踏入過這個行業,不知道如何面試,有點擔心自己是否能找到工作。但在無限互聯就業老師的細心指導下,我逐漸建立了信心。而且在面試中遇到的問題,就業老師也不厭其煩的一一進行解答。我真心感謝無限互聯就業老師,如果沒有他們的幫助,我也不會找到這份讓我非常滿意的工作。

4個月的培訓證明了我選擇的道路是正確的,在這里還認識了很多喜愛開發的朋友,我們在這里一起學習、生活,建立了很深的友誼。感謝無限互聯3G學院為我們提供了這樣一個良好的環境,最后祝福無限互聯越辦越好,祝各位老師工作順利愉快,祝福學弟學妹們前程似錦。

篇二:ios項目總結范文

還是10個小時就變成201X年了,回首這一年的工作,有碩果累累的喜悅,有工作當中的艱辛,也有遇到困難和挫折時的惆悵。在項目可開發的過程中,難題一個接一個的出現,自信心不止一次的受到過打擊,雖然自己早就知道,要做到符合公司的要求,做一名合格的程序員,這些是遠遠不夠的。每天我都會不斷勉勵自己,好好學,以后會好的。在此同時,公司也給了我很多學習的機會,這是我對以后的編程之路又有了信心。在擔任公司程序員一職已經有一年多的時間,在這一年時間里,我學到了很多東西。每個人都是在不斷的總結中成長,不斷的是審視中完善自己。在這一年里自己也是在總結、審視中腳踏實地完成好自己的本職工作,現將這一年的工作總結如下:

嚴格按照一個程序員應有的素養來約束自己,愛崗敬業,具有強烈的責任崗和事業心,積極主動認真的學習專業知識,工作態度端正,聽從公司的安排,積極配合客戶完善數字化校園系統。

熱愛自己的本職工作,能夠正確認真的對待每一項工作,工作投入,熱心為大家服務,認真遵守勞動紀律,按時上下班,有效利用工作時間,堅守崗位,需要加班完成工作的要按時加班加點,保證工作能夠按時完成。在這一年多的時間里面,我本著把工作做的更好這樣一個目標,主動了解公司的開發項目流程,請教他們開發技術上的問題。

1.在這一年多的時間里面,我參與的都是團隊合作的項目,無論是自己還是同事,我們都將就團隊精神。在信任自己和他人的基礎上,思想統一,行動一致,這樣的團隊一定會攻無不克戰無不勝。我們的很多工作是一起完成的,在這個過程中,大家互相提醒和補充,大大提高了工作效率,所有的工作中溝通是最重要的,一定要把信息處理的及時,有效和清晰。

2.每一個項目在開始著手的第一步,一定要和客戶把需求溝通清除,只要了解項目的需求,才有可能真正做好一個項目。我們需要向客戶提出,要求客戶提供所有涉及該項目的資料,每次與客戶見面都需要熟悉業務與程序的程序員隨時記錄需求。

3.工作中,將任務詳細化,詳細到每個頁面,甚至是一個頁面中的圖片什么時候做好,做好到什么程度,這樣把工作進度有計劃有方向的定下來,做事很有效率。

4.每天的工作小結真的很重要,這讓我們每天都有計劃的知道自己干了什么,不是漫無目的的工作,所以我們應該養成,日記、周記、月記、年記的工作習慣。

5.工作并不是一成不變的,也許有一天你要去其他崗位幫忙,所以同事之間的技術要相互學習,也許有一天,公司需要你發揮其他的技能幫忙,所以相互學習也是很重要的。

在公司工作的期間,我也發現了自己離一個符合公司要求的程序員還有很多差距,主要體現在工作技能與工作經驗的不夠,也是我以后要在工作中不斷磨練和提高自己的地方。仔細總結一下,自己在工作中主要有以下方面做的不夠好:

1.工作的條理性不夠清晰,要分清主次和輕重緩急。

在開發時間很倉促的情況下,事情多了,就一定要有詳細而主次分明的計劃,哪 需要立即完成,哪些可以緩緩加班完成,在這方面還有很大的優化空間。

2.對流程、業務需求不夠熟悉。

在工作中,發現因為流程或業務需求的問題而不知道如何下手的情況有點多,包括錯誤與缺漏還有當時設計考慮不到位的地方,對于這塊的控制力度顯然不夠,平時總是在開發,但說到底對業務很熟悉才是項目很好完成的前提。

3.缺乏工作經驗。

4.學習的知識不夠廣泛。

一個項目中,涉及的技術往往有很多種,知識多了,就會靈活變通,以后我也會加強這方面的學習。

第四篇:iOS項目自動生成技術文檔

iOS項目自動生成技術文檔

做項目一般都會要求寫技術文檔,特別是單干接項目的,客戶多少都會要求除了提供code之外,還得提供技術文檔,而如果我們手寫這類的文檔,那工作量不比寫code少。一般的開發工具都會提供類似集成的功能,比如Java語言本身就自帶javadoc命令,可以從源碼中抽取文檔,幾個配置,幾條命令就搞定了。

Xcode工具本身不具備這樣的功能,但是我們通過一些插件和工具來達到這個目的。

生成注釋

生成文檔之前,我們需要給代碼中的方法或者變量寫上注釋,然后再利用工具根據這些規范的注釋自動生成文檔。所以呢,注釋一定要規范統一,但是每次都要手動輸入規范化的注釋,著實也麻煩,這里需要借助Xcode的開源插件VVDocumenter,規范注釋生成器,非常方便!

多行注釋直接輸入三個斜線 “///” 會自動格式化,如上圖所示

單行注釋需要輸入三個斜線+空格 “/// 注釋”。輸入兩個“//”當然可以正確的被xcode識別為注釋,但是在下面生成文檔的時候不能被識別為文檔注釋。

然后再配合 appledoc、doxygen 或者 headdoc,就可以生成技術文檔。對于Objective-C來說,目前比較好用的是appledoc 和 doxygen。

工具對比 headerdoc

xcode 自帶的文檔生成工具、基于命令行的操作、使用方便。但是只能生成以 /*!*/ 的格式的注釋。還有一個缺點是每個類文件對應一個注釋文件,沒有最后匯總導航的index文件。

docxygen

功能強大、三者中支持語言最多的、無headerdoc缺點、基于圖形化的操作界面,但是配置較多,可以生成html文檔或pdf文檔。

appledoc

基于命令行的操作、使用方便、無headerdoc缺點、默認生成的文檔風格和蘋果的官方文檔是一致的,即docset,集成到xcode中就跟蘋果的官方文檔一模一樣,在源碼中按住option再單擊就可以調出相應方法的幫助。當然也可以生成html文檔。

工具使用 appledoc

從github下載源碼,在終端里面cd源碼文件夾,然后執行shell腳本安裝

[plain] view plaincopy

1.2.3.git clone git://github.com/tomaz/appledoc.git cd appledoc

sudo sh install-appledoc.sh

安裝過程中如果出錯,檢查一下Xcode所在的路徑中是否存在空格,去掉再試之。成功后在終端cd到項目文件夾里面,輸入以下命令生成文檔:

[plain] view plaincopy

1.appledoc--output../doc--project-name weibo--project-company “wxhl”--company-id “com.wxhl.weibo”.--output../doc 設置文檔輸出目錄為上級目錄下面的doc--project-name weibo 設置項目名為“weibo”--project-company “wxhl” 設置公司名為“wxhl”

--company-id “com.wxhl.weibo” 設置公司id為“com.wxhl.weibo”.當前目錄

當該命令完成后,可以看到在上級目錄的doc文件夾里面有一個docset-installed.txt的文件,這里面描述了docset文檔所在的真正路徑,一般都是在~/Library/Developer/Shared/Documentation/DocSets/ 里面,或者看看xcode中的Organizer-Documentation,會發現其中新增了幫助文檔。

生成HTML

對于最新版本的appledoc來說,它默認時是生成docset文檔并集成到xcode。當需要html文檔時,可以加上“--no-create-docset”

[plain] view plaincopy

1.appledoc--no-create-docset--output../doc--project-name weibo--project-company “wxhl”--company-id “com.wxhl.weibo”.當該命令完成后,可以看到在上級目錄的doc文件夾里面就 不是docset-installed.txt文件了,而是全部的html文檔,直接打開index就行。

doxygen

doxygen支持源碼編譯安裝與dmg安裝。去doxygen官網下載最新的dmg,doxygen有圖形界面,可通過Launchpad打開。

在step 1中選擇好項目的路徑。

step 2默認是Wizard->Project頁面,在其中 1)在“Project name”中填寫項目名。

2)勾選“Sacn recursively”,掃描所有的子文件夾。3)在“Destination directory”中填寫好文檔的輸出目錄。這里我填的是“docs”。

點擊中間的“Expert”切換Expert->Project頁面,在其中

1)將“OUTPUT_LANGUAGE”設為“Chinese”,使用簡體中文。

2)勾選“JAVADOC_AUTOBRIEF”,自動將注釋的第1段識別為簡要描述。“Run”切換Run頁面,然后點擊“Run doxygen”按鈕生成文檔。當文檔生成完畢后,使用瀏覽器打開docs/html/index.html——

生成PDF

doxygen默認會為生成pdf做好準備。切換到Wizard->Project,會發現它自動勾選了“LaTex”與“as intermediate format for hyperlinked PDF”。

doxygen本身并不能直接輸出pdf文件,而是生成了latex目錄,其中有一個 makefile 文件。若系統中裝好了pdflatex,可在latex目錄中運行“make”命令來生成pdf文件。怎樣才能裝好pdflatex呢?mac平臺可安裝MacTeX。打開 http://www.tmdps.cn/mactex/,下載 MacTeX.pkg(約2.1GB)。MacTeX.pkg下載好后,可雙擊運行,根據向導來安裝。

環境裝好之后,當在latex目錄中運行“make”命令來生成pdf文件時,你會發現——純英文文檔能順利生成pdf;而含有中文時,不能順利生成pdf文件。

對于latex排版,doxygen其實已經做了很多準備,比如——源文件是UTF-8編碼,并默認使用了utf8 package。理論上是支持多國語言的。可對于中文來說,還需要加載 CJKutf8 package,并配置好CJK環境。這才能順利的使用中文。

用文本編輯器打開docxygen生成的latex目錄中的refman.tex。找到“begin{document}”這一行,將其修改為 usepackage{CJKutf8} begin{document} begin{CJK}{UTF8}{gbsn}

然后再找到“end{document}”這一行,將其修改為 end{CJK} end{document}

保存并關閉refman.tex。

然后打開終端,使用cd命令進入latex目錄,然后執行“make”命令。

執行完畢后后,該目錄中會出現“refman.pdf”——

第五篇:ios畢業論文

河南理工大學畢業設計(論文)說明書

摘 要

隨著計算機網絡通信技術和Internet的飛速發展,基于因特網的手機移動應用已經開始成為一種全新的功能需求,并且越來越受到人們的關注。由于移動應用具有簡單性,隨時隨地性等諸多特點,因此它有著傳統計算機所無法比擬的優點。這樣一來,手機移動應用的開發工作就顯得尤為重要,開發出一個集合手機應用的“商店”極為重要,近年來iphone手機在中的發展趨勢日趨上升,iphone手機保密性很強,很多東西都不對外開放,愛限免手機app就是針對iphone手機而開發的一款手機應用,日趨擴大的市場也使得應用于iphone手機的app開發日趨緊迫,可以說愛限免的開發不僅是客戶的需求更是市場的需求。

愛限免項目的開發使用了iphone自己研發的開發軟件xcode6.0,主要有UIkit框架和Foundation框架組成。愛限免的項目開發,對數據進行展示主要應用列表控制器UIableview,在使用UItableview是對cell的復用是此技術的難點,主要避免在cell復用是出現內存泄露狀況而導致的程序崩潰,數據的獲取應用了AFHttpNetWork第三方庫,對網絡數據進行get獲取,把獲取的數據用數據模型接收,這樣有利于降低耦合性,是程序更順暢。在對數據保存時用到了FMDB第三方數據庫,此數據庫的底層也是對squlite的封裝,是開發者應用起來更順手簡介,提高效率,界面之間的數據傳輸難點blcok的應用,這點要求開發者對block有比較深刻的理解,以及應用熟練度。關鍵詞:ios,squlite,block,應用,控件

I

河南理工大學畢業設計(論文)說明書

Abstract

With the rapid development of computer network communication technology and the Internet, based on Internet mobile phone application has begun to become a kind of new functional requirements, and people have paid more and more attention.Because of its simplicity, anytime, anywhere, etc., it has the advantages that the traditional computer can't match..In this way, the mobile application development work is particularly important, the development of a collection of mobile application store “is very important, in recent years the iPhone in the development trend is rising day by day, iPhone mobile phone security is very strong, a lot of things are not open to the public, love limit free mobile app is for the iPhone and the development of a mobile application, widening the market also make the application to iPhone app development is becoming more and more urgent, you can love limit free development is not only the needs of customers is the demand of the market

The development of love limited free project use of iPhone own R & D software xcode6.0, mainly UIkit framework and Foundation framework.Love free for a limited time of project development, the data for display of the main application list controller UIableview, in the use of UItableview is reuse of the cell is the difficulty of this technology, mainly to avoid memory leak condition, which leads to the program crashes in the cell multiplexing and data acquisition application the AFHttpNetWork third-party libraries, the network data to get access to, to get the data model data receiving, which help to reduce coupling is process smoother.In to save the data used in the FMDB database of the third party, the bottom of this database is to squlite package is more comfortable profile application developers, improve efficiency, application of interface between data transmission difficulties blcok, this requires developers to more profound understanding of block, as well as the application of proficiency Keywords: IOS, squlite, block, application, control II

河南理工大學畢業設計(論文)說明書

目 錄

摘 要............................................................I 第一章 前 言.....................................................1

1.1 課題開發背景................................................1 1.2 愛限免手機app框架設計開發的現實意義........................2 1.3 國內外研究狀況..............................................2 1.4 論文內容和結構..............................................3 第2章 愛限免手機應用開發技術簡介.................................5

2.1 Objective-c簡介.............................................5 2.1.1 ios系統框架...........................................6 2.1.2核心操作系統層和核心服務層.............................7 2.1.3應用程序框架...........................................8 2.2 SQLite數據庫介紹............................................9 2.3 XCode......................................................10 第3章 愛限免手機應用app需求分析................................11

3.1 愛限免手機應用app的可行性分析.............................11 3.2 愛限免手機應用app功能需求分析.............................13 3.2.1 功能需求..............................................14 第4章 愛限免手機應用app設計....................................16

4.1 模塊功能設計...............................................16 4.1.1 限免模塊..............................................16 4.2.1 免費模塊..............................................21 4.2.2 專題模塊..............................................26 4.2.3 分享功能模塊..........................................30 4.2.4 收藏功能模塊..........................................32 4.2.5 搜索功能模塊..........................................36 第5章 系統測試..................................................38

5.1 功能模塊測試...............................................38 5.2 功能整體測試...............................................39 總結與展望.......................................................40

總結...........................................................40

III

河南理工大學畢業設計(論文)說明書

展望...........................................................41 參考文獻.........................................................43 謝 辭...........................................................44

IV

河南理工大學畢業設計(論文)說明書

第一章 前 言

1.1 課題開發背景

如今移動開發產業讓人眼花繚亂,主要的開飯平臺有:iOS(iPhoneOS)、Android、Nokia Symbian、BlackBerry、Java ME、Windows Phone、Flash/Flash Lite、mobile web(WAP/XHTML/CSS/Javascript)。Android以其開放性,多任務,大功能,畫面流暢,硬件設備優良多樣等各種優點,占智能機一大部分;然而它也存在著很明顯的不足,如:兼容性差,各種機型的配置不一樣,以至于開發的時候出現各種版本。有些產品華而不實,用戶體驗差。Symbian主要基于C語言的應用開發,支持多線程運行模式,但是開發代碼量過大給開發人員造成很大的不便,另外塞班版本之間兼容性差也是SymbianOS需要改進的一個地方。就目前而言,三大平臺(Android、Symbian、BlackBerry)的市場占有率也在逐漸下降,iOS呈現平穩上升趨勢。

1.App Store的支付模式成熟

App Store的成熟不僅僅是商業模式的創新,更重要的是無法模仿,經過長時間的運營,App Store已經形成完備的支付模式,被大部分用戶接受。

2.iOS是用Objective-C開發

從全球的編程語言排行榜來看,雖然,Objective-C只有蘋果公司一家使用,但是已經排名第4,可見iOS開發的普及性和受歡迎程度,另外,objective-c是對c語言的封裝,既沒有了c語言寫程序的繁瑣復雜性,又兼顧了c語言的高效率,這也使得objective-c語言在編程語言中的地位以及受歡迎度日益上升的一個因素。

3.Iphone性能優越

蘋果iPhone以及所有蘋果的硬件軟件策略和控制讓蘋果在用戶體驗和控制產品質量方面占盡先機,大部分iOS用戶能夠同時對他們手中的設備進行更新,這會吸引更多用戶。

4.iPhone在中國極受歡迎

中國的各大移動運營商都積極地與蘋果公司合作,各自推出適合中國人使用的手機套餐和應用,比如中國聯通,中國電信等等,社會各界也對iPhone有很好的評價,還有很多知名手機應用軟件,如qq微信等也加入了app store。

5.iOS在各國開發者中有很好的學習氛圍

如facebook的three 20 iOS開源代碼庫,都是良好的學習資源,還有一些

河南理工大學畢業設計(論文)說明書

前輩大牛發表的博客如博客園就是一個ios開發者很好的交流網站,還有一些如cocoachina里邊集合了很多開發者的心得及項目,國內外的開發大牛都有在上邊發表自己的心得。也是ios開發者良好的學習資源。

1.2 愛限免手機app框架設計開發的現實意義

隨著科技的發展技術的進步,手機的功能也出現了翻天覆地的變化,由原來只是打電話發短信的基本功能,轉變為現在的全功能智能手機,人們對手機的要求也越來越高。

1.iphone手機中國市場無限擴大

Iphone手機的性能優越已經不言而喻,不用就釋放也使得iphone手機避免了安卓手機卡機現象,然而iphone手機并不對外開源,是的其核心技術只被蘋果公司壟斷,關于iphone手機的手機應用也是少之又少,畢竟開發者有限。因此iphone手機的app開發也是迫切的。

2.開發框架完善

Iphone應用的開發主要平臺式有iphone公司自己研發的開發平臺xcode,是由蘋果公司的先輩大牛寫出來的,主要用于ios開發者開發軟件,集合objective-c,性能比較完善。

3.滿足市場

Iphone主要軟件獲取是從appStore中買或者是免費下載,愛限免主要實現對iphone手機應用的時時推薦,把app進行條理分類,便于用戶根據個人需求獲取自己想要得到的app。

1.3 國內外研究狀況

1.國外

第一代iPhone在2007年誕生雖然現在也許很難想象,但是當第一代iPhone發布的時候,它相對來說落后的特性和功能是不足以讓它直接在紙面的參數對比上勝過競爭對手的。當時的Windows Mobile, Palm OS, Symbian, 甚至是BlackBerry都是2007年間相對成熟的系統了,都擁有廣泛而又深厚的特性積累。相比之下,iPhone不支持3G網絡,不支持多任務操作,也不支持第三方應用。你沒有辦法去復制/粘貼文本,你沒有辦法在想要發送的電子郵件中添加附件。就連彩信iPhone也沒有辦法提供支持。其他方面的特性缺失還包括:Exchange郵件推送、可自定義的主屏幕、tethering、可見的全局文件管理器、Office文件編輯、語音撥號、以及對黑客和開發者所理應由的開放性,iphone發布三個 2

河南理工大學畢業設計(論文)說明書

月之后就迎來了第一次升級,引入了iTunes Wi-Fi MusicStore。它允許用戶直接在iPhone上面購買音樂,它或許是許許多多iPhone新特性中因為運營商網絡壓力或者運營利益而遭到壓制的例子中的第一個,在隨之而來的ios2解決了手機應用問題加入了appstore,App Store同時存在于手機(AppStore應用)和PC(iTunes)兩個地方,用戶選擇任意一種途徑都可以自由地瀏覽和安裝應用程序。這對于過去分散性極高的移動應用(大部分通過web直接下載,有些應用存在于第三方應用商店,整體和OS的整合度較差)來說是一個巨大的變化。另外重要的是,AppStore和iTunesMusic使用一個賬號,用戶無需再次輸入自己的信用卡賬號密碼。這意味著查找和安裝應用程序將前所未有的容易,這大大提高了用戶沖動消費的可能性,在之后的升級中也加入了自己原創的地圖的一些高級功能。2.國內

隨著智能手機的大眾化,越來越多的人應用智能手機。相對的對手機軟件的需求也就越來越多。當今時代手機不再只是用來打電話、發短信的工具,反而對手機的娛樂功能要求越來越高。手機新聞也成為了人們的主要獲取信息途徑之一。目前中國新聞行業已經具備了相當的規模,并在國際市場上已有一定的競爭力。蘋果手機作為當今中國智能手機市場上不可或缺的一個品牌,基于iOS的手機軟件需求量也就相應的越來越強。市場上的新聞品牌繁多,定位不一,基本滿足了各層次消費者的需求,例如:騰訊新聞、搜狐新聞、網易新聞、新浪新聞等等這些大家所熟知的新聞已經在蘋果軟件中占據了一定的地位。智能手機的普及使得移動信息平臺成為了主流。伴隨著蘋果手機進入中國市場,相應的iOS技術逐漸流行起來。而對于開發蘋果應用的語言Objective-C,也成為當今社會最流行的開發語言,并且保持著強勁的上升趨勢,隱隱有超過C語言的現象。對于其他的開發語言,例如java、javascripe,Object-C以其強大的優勢遙遙領先于這些其他的編程語言。本人根據當前的形式,決定引用這種這種技術來開發手機應用。

1.4 論文內容和結構

本論文主要寫的是一個ios項目-愛限免的實現過程,以及一些在實現過程中遇到的難題,解決方法,自己在解決問題中的體悟和感受,以及對以后項目的完善的展望,本文把實現項目過程中的核心代碼張是給讀者看,讓讀者對我的項目有初步的了解,也對關鍵代碼附有文字說明以及代碼運行后的圖片展示。具體 3

河南理工大學畢業設計(論文)說明書

章節內容如下簡介講述:

第一章,介紹了課題的開發背景、課題開發的現實意義、國內外研究綜述、論文內容及結構。

第二章,概略地介紹了開發愛限免手機應用多用到的各種技術,比如新技術Objective-c,SQLite數據庫,開源框架的json解析等。

第三章,對愛限免系統結構設計、系統結構功能、運行環境等概要分析設計階段做工了大體介紹即需求分析。

第四章,對系統總體流程設計、系統整體框架、后臺邏輯處理功能設計和數據庫設計作了簡要說明具體介紹了系統各功能實現過程,如分享、收藏等。

第五章,大體介紹了對本系統的測試工作,涵蓋了測試計劃、測試結果以及測試分析這三個方面的內容。

河南理工大學畢業設計(論文)說明書

第2章 愛限免手機應用開發技術簡介

該部分主要包括對iOS系統架構的分析、核心操作系統的分析、應用程序框架的分析、內核的分析、開發環境的配置信息、選用數據庫描述信息等,具體如下:

2.1 Objective-c簡介

Objective-C是非常“實際”的語言。它使用一個用C寫成、很吊的運行庫,只會令應用程序的占得內存增加很小。OC寫成的程序通常不會比其源代碼大很多。而其函數庫(通常附在軟件發行本)亦和Smalltalk系統要使用極大的內存來開啟一個窗口的情況相反。Objective-C的最初版本并不支持垃圾回收。在當時這是爭論的焦點之一,很多人考慮到Smalltalk回收時有漫長的“死亡時間”,令整個系統失去功用。Objective-C為避免此問題才不擁有這個功能。雖然某些第三方版本已經加入這個功能(尤其是GNUstep),再起Mac OS X 10.3中仍未引入這個功能。不過令人欣慰的是在Apple發布的XCode4中已經支持自動釋放,我不敢冒昧的說那是垃圾回收,因為兩者機制不同,在xCode4中的自動釋放,也就是ARC(Automatic Reference Counting)機制,是不需要用戶手動去Release一個對象,而是在編譯期間,編譯器會自動幫你添加那些以前你經常寫[NSObject release]。

另一個問題是OC不包括命名空間機制(namespace mechanism)。取而代之的是程序設計師必須在其類別名稱加上前綴,時常引致沖突。在2004年,在Cocoa編程環境中,所有Mac OS X類別和函式均有“NS”作為前綴,例如NSobject或NSButton來清楚分別它們屬于Mac OS X核心;使用“NS”是由于這些類別的名稱在NeXTSTEP開發時定下。雖然Objective-C是C的母集,但它也不是C的基本型別為第一級的對象。和C++不同,Objective-C不支援運算子多載(它不支持ad-hoc多型)。亦與C++不同,但和Java相同,Objective-C只容許對象繼承一個類別(不設多重繼承)。Categories和protocols不但可以提供很多多重繼承的好處,而且沒有很多缺點,例如額外執行時間過重和二進制不兼容。由于OC使用動態運行時類型,而且所有的方法都是函數調用(有時甚至連系統調用(syscalls)也如此),很多常見的編譯時性能優化方法都不能應用于OC(例如:內聯函數、常數傳播、交互式優化、純量取代與聚集等)。這使得OC性能劣于類似的對象抽象語言(如C++)。不過OC擁護者認為既然OC運行時消耗較大,OC本來就不應應用于C++或Java常見的底層抽象

河南理工大學畢業設計(論文)說明書

2.1.1 ios系統

Cisco的網際操作系統(IOS)是一個為網際互連優化的操作系統--類似一個局域操作系統(NOS)、如Novell的 NetWare,為LANs而進行優化。IOS為長時間有效地維護一個互聯網絡提供了統一的規則。簡而言之,它是一個與硬件分離的軟件體系結構,隨網絡技術的不斷發展,可動態地升級以適應不斷變化的技術

IOS可以被視作一個網際互連中樞。一個高度智能的管理員,負責管理、控制復雜的分布式網絡資源。其早期版本是一個單獨系統,基本上以路由器為中心。它被排列成一個過程(Procedure)集,允許任何過程之間相互呼叫。這種單一的結構使數據的隱蔽性和獨立性不強。它的大多數操作代碼擁有結構和操作的相關性

iPHONE是Mac出的封閉手機系統,iPhone相對要穩定,不開放源代碼的,擴展相對不足,移植性很好!iPhone開發用的是Objective-C(一種C語言的第三方拓展版),從眾面小,不能定制UI(界面),只能進行功能解鎖 比如:越獄.iPhone定位于高端手機市場,走的是個性化路線,主要優勢是AppStore(移動網上商店),Mac擁有全球最大最成熟的移動網上商店

1.模塊性

IOS是Cisco路由軟件的初始品牌名稱。隨著Cisco技術的發展,IOS不斷擴展,成為Cisco Central ENgineering(中央工程部門)所稱之為的“一系列緊密連接的網際互連軟件產品”。盡管在其品牌名識別中,IOS可能仍然等同于路由軟件,但是它的持續發展發已使之過渡到支持局域網和ATM交換機,并為網絡管理應用提供重要的代理功能。必須強調的是,IOS是Cisco開發的技術:一項企業資產。它給公司提供獨特的市場競爭優勢。許多競爭者許可IOS在其集線器和中由模塊內運行,IOS已尼廣泛成為網際互連軟件事實上的工業標準。

2.靈活性

基于Cisco產品的工程開發以用戶可以獲得適應變化的靈活性。IOS軟件提供一個可擴展的平臺,Cisco會隨著需求和技術的發展集成新的功能。Cisco可以更快地將新產品投向市場,我們的客戶可以享用這種優勢。

3.可伸縮性

IOS遍布網際互連市場;廣泛的Cisco使用伙伴及競爭者在他們的產品上支 6

河南理工大學畢業設計(論文)說明書

持IOS.IOS軟件體系結構還允許其集成構造企業互聯網絡的所有部分。Cisco已經定義了4個:核心/中樞:網絡中樞和WAN服務,包括大型骨干網絡路由器和ATM交換機。工作組:從共享型局域網移植到局域網交換(VLANs)提供更優的網絡分段和性能。)遠程訪問:遠程局域網連接解決方案;邊際路由器、調制解調器等。IBM網際互連:SNA和LAN并行集成,從SNA轉換到IP.Cisco的IOS擴展了所有這些領域,提供了支持端到端網際互連的穩健性。

4.可操作性

IOS提供最廣泛的基于標準的物理和邏輯協議接口——超過業界任何其他供應商:從雙絞線到光纖,從局域網到園區網到廣域網,Novell NetWare,UNIX,SNA以及其他許多接口。即是說,一個圍繞IOS建立的網絡將支持非常廣泛的應用。

2.1.2核心操作系統層和核心服務層

位于iOS系統架構最下面的一層是核心操作層,它包括內存管理,文件管理,電源管理以及一些其他的操作系統業務,它可以直接和硬件設備交互。核心操作系統層包括以下這些組件:OS X Kernel,Mach 3.0,BSD,Sockets,Power Mgmt,File System Keychain,Certificates,Security,Bonjour等

開發人員也可以完全訪問核心服務層來方問iOS的一些服務,包括數據庫連接,URL學習等等,它主要包括以下這些組件:Collections,Address Book,Networking,File Access,SQLite,Core Location,Net Services,Threading,Preferences,URL Utilities等。

SQLite是嵌入式的和輕量級的sql數據庫,廣泛用于iOS應用。iOS系統內置SQLite數據庫減小了開發人員的負擔,是系統的一部分。

Net Servicer主要負責網絡服務,在開發過程中,承擔應用程序與服務器之間連接的角色,有很強的交互性。

媒體層,通過它可以在應用程序中使用各種媒體文件,進行音頻與視頻的錄制,圖形的繪制,以及制作基礎的動畫效果。它包括以下這些組件:Core Audio,OpenGL,Audo Mixing,AudioRecording,VideoPlayback,JPG,PBG,TIFF,PDF,Quartz,CoreAnimation,OpenGL ES。最上面一層是可觸摸層,這一層為應用開發提供了各種有用的框架,并且大部分與用戶界面有關,本質上來說它負責用戶在iOS設備上的觸摸交互操作。它包括以下這些組件:Multi-Touch Events,Core Motion,Camera,View Hierarchy,Localization,Alerts,Web Views,Image 7

河南理工大學畢業設計(論文)說明書

Picker,Multi-Touch Controls。

在Cocoa Touch層中的很多技術都是基于Objective-C語言的。Objective-C語言為iOS提供了相機集合,文件管理,網絡操作等支持。例如UIKit框架,它為應用程序提供了各種可視化組件,窗口(window),視圖(view)和按鈕組件(UIButton)。Cocoa Touch層中的其他框架,對我們在應用程序中的開發來說也是非常有用的,如訪問用戶通信錄功能框架,獲取照片信息功能的框架,負責加速感應器和三維陀螺儀等硬件支持的框架等等。

2.1.3應用程序框架

編寫應用程序項目,都是從CocoaTouch層開始的,具體來說是從UIKit Framework開始的。iOS常用的SDK框架如下:

AddressBook.framework 提供訪問存儲核心數據庫中用戶聯系人信息的功能。

AddressBook.framework提供一個用戶界面,用于顯示存儲在地址薄中的聯系人詳情。

AudioUnit.framework提供一個接口,讓我們的應用程序可以對音頻進行處理。

AudioToolbox.framework和AVFoundation.framework提供音頻錄制和回放的底層API,同時也負責管理音頻硬件。

CFNetwork.framework訪問和配置網絡,像HTTP,FTP和Bonjour Services等。

CoreFoundation.framework提供抽象的常用數據類型,如Unicode、strings、XML、URL等。

CoreGraphics.framework提供2D繪制的基于C的API。

Foundation.framework提供Object-C的基礎類(像NSObject)、基本數據類型和操作系統服務等。

GameKit.framework為游戲提供網絡功能,點對點互聯和游戲中的語音交流。MapKit.framework為應用程序提供內嵌地圖的接口。MediaPlayer.framework提供視頻播放和音頻的功能。

MessageUI.framework提供視圖控制接口用以處理E-mail和短信。OpenGLES.framework提供簡潔而高效的繪制2D和3D圖形的OpenGL API。QuartzCore.framework提供動畫特效以及通過硬件進行渲染的能力。

河南理工大學畢業設計(論文)說明書

StoreKit.framework為應用程序提供在程序運行中消費的支持。SystemConfiguration.framework檢測當前網絡是否可用和硬件設備狀態的能力。

2.2 SQLite數據庫介紹

SQLite是一個輕量級、跨平臺的關系型數據庫。既然號稱關系型數據庫,支持SQL92標準中常用的事務(比如視圖、事務、觸發器等)就是理所當然的了,具體特色有以下幾點:

1.輕量級

先說它的第一個特色:輕量級。想必SQLite的創建者很看重這個特性,連它的Logo都是用的“羽毛”,來顯擺它的輕飄飄。SQLite和C/S模式的數據庫軟件不同,它是進程內的數據庫引擎,因此不存在數據庫的客戶端和服務器。使用SQLite一般只需要帶上它的一個動態 庫,就可以享受它的全部功能。而且那個動態庫的尺寸也挺小,以版本3.6.11為例,Windows下487KB、Linux下347KB等。

2.綠色軟件

SQLite的另外一個特點是綠色:它的核心引擎本身不依賴第三方的軟件,使用它也不需要“安裝”。所以在部署的時候能夠省去不少麻煩。

3.單一文件

所謂的“單一文件”,就是數據庫中所有的信息(比如表、視圖、觸發器、等)都包含在一個文件內。這個文件可以copy到其它目錄或其它機器上,也照用不誤。

4.跨平臺/可移植性

如果光支持主流操作系統,那就沒啥好吹噓的了。除了主流操作系統,SQLite還支持了很多冷門的操作系統。我個人比較感興趣的是它對很多嵌入式系統(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。

5.內存數據庫(in-memory database)

SQLite的API不區分當前操作的數據庫是在內存還是在文件(對于存儲介質是透明的)。所以如果你覺得磁盤I/O有可能成為瓶頸的話,可以考慮切換為內存方式。切換的時候,操作SQLite的代碼基本不用大改,只要在開始時把文件Load到內存,結束時把內存的數據庫Dump回文件就OK了。

河南理工大學畢業設計(論文)說明書

2.3 XCode Xcode2.0是開發人員建立Mac OS X應用程序的最快捷方式,也是利用新的蘋果電腦公司技術的最簡單的途徑。Xcode2.0將Mac OSX的輕松使用,UNIX 能量以及高性能的開發技術集合在一起。

不管你用C、C++、Objective-C或 Java編寫程序,在AppleScript里編寫腳本,還是試圖從另一個奇妙的工具中轉移編碼,你會發現Xcode編譯速度極快。每次操作都很快速和輕松。

Xcode4的虛擬模型和設計功能讓你可以更輕松的開發和維護應用程序。只需選擇應用程序中想要編寫的部分,然后模型和設計系統將自動創建分類圖表,不僅可以顯示編碼,還可以讓你進行瀏覽。Mac OS X Core Data API 幫你的應用程序創建數據結構。更棒的是,它還自動提供撤消、重做和保存功能,無需編寫任何編碼。

Xcode整合的 Apple Reference Library為所有的Apple開發者文件提供一個單獨的搜索和顯示界面,這些文件包括來自蘋果電腦公司網站的在線文件,以及存放在你電腦上的文件。新的參考資料庫甚至可以幫你將定期更新資料下載到你的電腦,保持文件的最新狀態。Xcode 將幫你快速找到最新的答案。

Xcode4的核心部分是蘋果電腦公司下一代業界標準的gcc編譯器gcc4.0。新的編譯器利用許多先進的最優化技術幫你從現存編碼中獲得更多性能。從超級計算世界借鑒來的自動向量化(Auto-vectorization)技術可以幫助你釋放每臺 Intel 系統中速度引擎的能量,而不需要編寫向量化編碼。其他的最優化工具則支持反饋定向的最優化,以及隱藏模塊分析。

Xcode 將賦予你創建諸如計算和渲染引擎應用程序的能力,這些應用程序使用64位內存定址。這非常適合數據集中的應用程序,其通過訪問內存中的數據運行速度更快,遠勝于磁盤訪問。Xcode將為你提供工具來建立并調試適合 IntelCore i5, i7 和Mac OSX Lion的32或64位應用程序,還可以讓你創建包含32位和64位執行能力的 Fat Binaries。

眾所周知,在構建中引進多重處理器可以提高速度,Xcode 能幫你實現這個明顯的結論。利用支持 Rendezvous 的分布式構建功能,可以輕易地把編譯工作量分散到閑置的電腦上來寄放構建,或者更好是在單獨的電腦上開發一個專門的 Xserve 構建寄放區,快速處理那些耗時的任務。

河南理工大學畢業設計(論文)說明書

第3章 愛限免手機應用app需求分析

根據第一章所定義的課題研究方向及目標,本章將對系統功能進行具體的需求分析,具體分析愛限免app所要實現的功能以及欲達到的效果,具體內容如下章節:

3.1 愛限免手機應用app的可行性分析

1.使用objective-c編程技術

Objective-c是非常實際的語言,他是一個用c寫成、很小的運行庫,只會令程序的尺寸增加很小,和大部分oo系統使用極大的vm執行時間會取代整個系統運作相反,Objective-c寫的程序通常不會比起原始代碼大很多,而其函數庫亦和Smalltalk系統要使用極大的內存來開啟一個窗口的情況相反,因objective-c它完全兼容標準c語言,c語言具有的高效性也被objective-c繼承,但是我們用的objective-c并不像c語言用起來那么的復雜,因為它是對c的封裝,把復雜高效的語言變得簡單高效,這樣更利于ios開發者使用,也為iOS開發者帶來了便捷。(1)動態綁定

函數和消息的最根本不同是:函數和它的參數是在編譯的時候已經確定下來,但是消息和接收對象知道程序已經在運行,消息在傳遞時才能確定下來。確切的消息方法實現依賴于消息的接收者,不同的接收者可能有相同的方法名不同的方法實現,只有在消息接收時才能確定(動態類型),通過源代碼的類型定義并不能完全確認接收者的類型。運行時消息例程查找接收者和消息方法,找到消息方法實現的機器碼,呼叫這個方法,傳遞給它消息實例變量指針(2)多態性

在Objective-c中消息的調用看上去和標準C中的函數調用相似,但因為方法屬于一個對象,消息的行為與函數調用還是不同。在一些情況下,一些對象僅能對針對它涉及的方法起作用,不能被其他類的方法使用,即使這些類有同樣名稱的方法。這意味著兩個對象對同樣的消息有著不同的響應,即多態性。Objective-c中多態性和動態綁定配合使用,可以使代碼提供給任意數量不同類型的對象使用,這些對象不需要再寫代碼的時候就已經定義好,它們可以是以后開發的對象,也可以是其他項目的對象。(3)面向對象

面向對象程序構建在多種對象之上,基于Cocoa框架的程序可能使用

河南理工大學畢業設計(論文)說明書

NSMatrix對象、NSWindow對象、NSDirectonary對象、NSFont對象以及許多其它對象。在Objective-c中通過定義類來定義對象。面向對象讓開發者更容易開發應用程序軟件,以及更加規范化(4)繼承性

類的定義是累進的,任一個新類都是在另一個類的基礎上定義的,新類繼承了它的方法和實例變量。繼承使所有的類構成一顆樹形的結構,在Objective-c中使用類一般要繼承或間接繼承于基類:NSObject,因為NSObject提供了大量的有用特性。比如,一些圖形類,需要繼承于Shape類,而Shape是Graphic類的子類,Graphic又繼承于NSObject類,因此,還是間接繼承于NSObject類。類的繼承關系圖3-1所示:

圖3-1 Objective-C類繼承圖

在項目中NSObject集合了所有類的基本方法,所有的=類都繼承或者間接繼承NSObject。2.社會市場因素可行性

如今社會發展迅速,手機行業更是赤手可熱,手機應用的開發也是更新換代比較頻繁,一款好的手機軟件商店,不僅能適應市場的發展方向,更是為廣大用戶帶來福利以及便捷。

按照目前市場情形,越來越多的移動開發者涌進iOS開發領域。iOS平臺上應用軟件,App Store的支付模式更為成熟而且有監管,另外iOS的兼容性問題小,開發人員不用考慮太多的配置兼容問題,美觀大方的外形,更是吸引了大量

河南理工大學畢業設計(論文)說明書 的用戶。而且其良好的用戶體驗,都為iOS的發展奠定了良好的基礎。3.硬件工具可行性

使用工具方面,開發工具ios xcode6.0版本,要求mac10.8操作系統,一臺已經安裝有所有必備的軟件及相應軟件設備的計算機;內存要求大于或等于2G。

3.2 愛限免手機應用app功能需求分析

愛限免手機應用app,設計5個模塊,每個模塊各司其職,在整個工程中又到了MVC模式,單例模式,block模式,是每個功能模塊化各模塊之間的聯系降到最低,使得每個模塊都類似一個小型的家庭,每個成員各司其職,這樣就降低了程序的耦合性有利于后期代碼的維護,模塊化的設計也使得你的app看起來更有你條理性,下邊就是對模塊化的圖文解釋,具體如圖3-2-1:

圖3-2-1 模塊展示

河南理工大學畢業設計(論文)說明書

此圖清晰的展示了app的5個功能模塊,首相是上邊的5個大模塊,由一個分欄控制器UITablebarController控制,把這5各模塊放到分欄控制器數組中進行控制,如圖3-2-1設一個搜索控制器和一個詳情控制器,通過正反向傳值把5大功能模塊的信息傳到這兩個控制器上邊進行顯示,其中在詳情頁面還有收藏分享工能,收藏使用了一個數據庫進行裝載數據,分享實在MOb注冊了開發者 根據官方文檔進行了qq空間分享(需要有qq空間客戶端才行)。

3.2.1 功能需求

1.App應用的查看功能需求

此項目分別有5各視圖控制器viewcontroller分別有系統的分欄控制器tabbaicontroller控制,可以根據下標來回相互切換,每個視圖控制器上邊都有一個表格控制器UITableview來進行展示數據內容,由于數據的內容各不相同,表格控制器還需要適應每個數據的變化,視圖控制器之間還可以相互跳轉,一般都是通過壓棧的形勢來進行跳轉。2.App應用詳情查看表功能需求

應用詳情的展示由xib可視化編程和代碼兩者結合實現,可以展示商品的圖片、大小、類型、詳情介紹等內容,還有周邊推薦,可以看到周邊人的app,以經緯度來確定摸個區域。3.在線搜索應用功能需求

搜索功能有uiseacrbar來實現,通過app的名字,漢字英文都可以,通過代理方法把輸入框里邊的內容和數據中的信息對比,有相同的就保存到數組中,再通過UItableview展示到界面上來。4.在線app分享功能需求

分享的第三放有很多,我這里只用mob進行空間分享,這個功能需要開發者注冊開發者賬號,在官網上下載分享文檔,提取核心代碼,分享的實現有mob完成。

5.App收藏功能需求

App的收藏這里與運用了數據庫,可以通過點擊事件把你點擊的app加到數據庫中,再在相應的界面進行信息展示。6.App圖片保存功能需求

通過點擊事件來觸發收藏相冊的代理事件,把相應的圖片收藏到相冊,打開相冊即可觀看。

河南理工大學畢業設計(論文)說明書

7.App應用設置的功能需求

這里的app設置功能只做了,對收藏的app進行刪除的操作。

河南理工大學畢業設計(論文)說明書

第4章 愛限免手機應用app設計

系統設計階段主要的任務是系統各個模塊的具體設計與實現。

4.1 模塊功能設計

下面以具體的效果來展示各個功能模塊。

4.1.1 限免模塊

1實現顯示免費app的展示 2 對限時免費app的詳情查看 3對現實免費app的時間倒計時 4 app基本信息的顯示

限免功能模塊運行效果圖如下4.1.1-1,4.1.1-2所示

圖4.1.1-1限免界面

此圖為限免模塊的展示,如圖界面由一個uitableview覆蓋真個屏幕,商品在每個cell上進行信息展示,具體的設計由xib完成,下面展示cell的設計:

下邊我就用代碼來展示一下這個界面的實現: 首先是對網絡數據的請求startTime;

cell.surplusTimeLabel.text = [NSString stringWithFormat:@”剩余:%.2lld:%.2lld:%.2lld“,time/3600,time%3600/60,time%60];

}else{

AppMode1 *mode = _searchArr[indexPath.row];

cell.nameLabel.text = mode.name;

cell.iconImage.image = [UIImage imageWithData:mode.iconData];

cell.lastPriceLabel.text = [NSString stringWithFormat:@”¥ %.1f“,[mode.lastPrice floatValue]];

cell.categoryLabel.text = [mode.categoryName isEqualToString:@”Game“]?@”游戲“:@”應用“;

cell.countLabel.text = [NSString stringWithFormat:@”分享:%@次 收藏:%@次 下載:%@次“,mode.shares,mode.favorites,mode.downloads];

//處理 星星

cell.starImageView.frame = CGRectMake(cell.starImageView.frame.origin.x, cell.starImageView.frame.origin.y, 65/5.0*[mode.starOverall floatValue], cell.starImageView.frame.size.height);//修改fream

河南理工大學畢業設計(論文)說明書

//處理 倒計時問題

NSDate *date = [NSDate date];

long long startTime =(long long)[date timeIntervalSince1970];

NSString *str = [mode.surplusTime componentsSeparatedByString:@”.“][0];

NSDateFormatter *fo = [NSDateFormatter new];

fo.dateFormat = @”YYYY-MM-dd HH:mm:ss“;

NSDate *endDate = [fo dateFromString:str];

long long endTime =(long long)[endDate timeIntervalSince1970];

long long time = endTime(UITableViewCell

*)tableView:(UITableView

*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@”cell“];

if(tableView == _tableView){

AppMode1 *mode = _dataArr[indexPath.row];

cell.nameLabel.text = mode.name;

cell.iconImage.image = [UIImage imageWithData:mode.iconData];

cell.lastPriceLabel.text = @”¥ 0.0“;

cell.categoryLabel.text = [mode.categoryName isEqualToString:@”Game“]?@”游戲“:@”應用“;

cell.countLabel.text = [NSString stringWithFormat:@”分享:%@次 收藏:%@次 下載:%@次“,mode.shares,mode.favorites,mode.downloads];

//處理 星星--下面兩項 在xib中已經處理過

//

cell.starImageView.contentMode = UIViewContentModeLeft;//設置圖片填充方式

//

cell.clipsToBounds = YES;//設置 自動切割超出自身fream的部分

cell.starImageView.frame cell.starImageView.frame.origin.y,=

CGRectMake(cell.starImageView.frame.origin.x, 65/5.0*[mode.starOverall

floatValue], cell.starImageView.frame.size.height);//修改fream

cell.surplusTimeLabel.text = [NSString stringWithFormat:@”評分:%.2f分“,[mode.starOverall floatValue]];

}else{

AppMode1 *mode = _searchArr[indexPath.row];

cell.nameLabel.text = mode.name;

cell.iconImage.image = [UIImage imageWithData:mode.iconData];25

河南理工大學畢業設計(論文)說明書

cell.lastPriceLabel.text = @”¥ 0.0“;

cell.categoryLabel.text = [mode.categoryName isEqualToString:@”Game“]?@”游戲“:@”應用“;

cell.countLabel.text = [NSString stringWithFormat:@”分享:%@次 收藏:%@次 下載:%@次“,mode.shares,mode.favorites,mode.downloads];

//處理 星星

cell.starImageView.frame cell.starImageView.frame.origin.y,=

CGRectMake(cell.starImageView.frame.origin.x, 65/5.0*[mode.starOverall

floatValue], cell.starImageView.frame.size.height);//修改fream

cell.surplusTimeLabel.text = [NSString stringWithFormat:@”評分:%.2f分“,[mode.starOverall floatValue]];

}

UILabel *lebel =(UILabel *)[cell.contentView viewWithTag:10];

lebel.hidden = YES;

return cell;} 4.2.2 專題模塊

1按照一定的專題分類顯示 運行效果圖如下4.2.2-1

圖4.2.2-1 專題界面

河南理工大學畢業設計(論文)說明書

專題界面實現如圖所示,從圖上不難看出這個界面的cell復雜得多,這個cell上不僅僅是一個app的展示,而是集合了多個app,每個app都顯示不同的信息,而且點擊每個app都會顯示對應的商品詳情,在這里處理這個就用到了block傳值,下面對界面的設計進行代碼展示,首先是請求數據的展示: AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

[manager GET:PAGE_D_URL parameters:@{@”page“:@”1“,@”limit“:@”5“} success:^(AFHTTPRequestOperation *operation, id responseObject){

NSArray *arr = responseObject;

for(int i=0;i

AppMode4 *mode = [[AppMode4 alloc]init];

mode.title0 = arr[i][@”title“];

mode.imageUrlStr1 = arr[i][@”img“];

mode.imageUrlStr6 = arr[i][@”desc_img“];

mode.title5 = arr[i][@”desc“];

mode.title1 = arr[i][@”applications“][0][@”name“];

mode.title2 = arr[i][@”applications“][1][@”name“];

mode.title3 = arr[i][@”applications“][2][@”name“];

mode.title4 = arr[i][@”applications“][3][@”name“];

mode.imageUrlStr2 = arr[i][@”applications“][0][@”iconUrl“];

mode.imageUrlStr3 = arr[i][@”applications“][1][@”iconUrl“];

mode.imageUrlStr4 = arr[i][@”applications“][2][@”iconUrl“];

mode.imageUrlStr5 = arr[i][@”applications“][3][@”iconUrl“];

mode.star1 = arr[i][@”applications“][0][@”starOverall“];

mode.star2 = arr[i][@”applications“][1][@”starOverall“];

mode.star3 = arr[i][@”applications“][2][@”starOverall“];

mode.star4 = arr[i][@”applications“][3][@”starOverall“];

mode.btnTitle1_1 = arr[i][@”applications“][0][@”comment“];

mode.btnTitle1_2 = arr[i][@”applications“][0][@”downloads“];

mode.btnTitle2_1 = arr[i][@”applications“][1][@”comment“];

mode.btnTitle2_2 = arr[i][@”applications“][1][@”downloads“];27

河南理工大學畢業設計(論文)說明書

mode.btnTitle3_1 = arr[i][@”applications“][2][@”comment“];

mode.btnTitle3_2 = arr[i][@”applications“][2][@”downloads“];

mode.btnTitle4_1 = arr[i][@”applications“][3][@”comment“];

mode.btnTitle4_2 = arr[i][@”applications“][3][@”downloads“];

_IDarray = @[arr[i][@”applications“][0][@”applicationId“],arr[i][@”applications“][1][@”applicationId“],arr[i][@”applications“][2][@”applicationId“],arr[i][@”applications“][3][@”applicationId“]];

[_IDMUarray addObject:_IDarray];

[_dataArr addObject:mode];

}

[_tableView reloadData];

} failure:^(AFHTTPRequestOperation *operation, NSError *error){

}];} 下面展示cell的賦值問題,這里我們會為每個app打上標簽,一遍我們在傳值的時候能辨認我們還點擊的是哪個app。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

CustomCell_D *cell = [tableView dequeueReusableCellWithIdentifier:@”cell“];

cell.array = _IDMUarray[indexPath.row];

AppMode4 *mode = _dataArr[indexPath.row];

[cell setBlock:^(NSString *ID){

ViewControllerA_2 *viewCtl_2 = [[ViewControllerA_2 alloc]init];

viewCtl_2.appId = ID;

[self.navigationController pushViewController:viewCtl_2 animated:YES];

}];

[cell.myImageView1 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr1] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]];

[cell.myImageView2 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr2] placeholderImage:[UIImage

河南理工大學畢業設計(論文)說明書

imageNamed:@”topic_TopicImage_Default“]];

[cell.myImageView3 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr3] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]];

[cell.myImageView4 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr4] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]];

[cell.myImageView5 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr5] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]];

[cell.myImageView6 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr6] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]];

cell.myLabel1.text = mode.title1;

cell.myLabel2.text = mode.title2;

cell.myLabel3.text = mode.title3;

cell.myLabel4.text = mode.title4;

cell.myLabel5.text = mode.title5;

[cell.btn1_2 setTitle:mode.btnTitle1_2 forState:UIControlStateNormal];

[cell.btn1_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle1_1] forState:UIControlStateNormal];

[cell.btn2_2 setTitle:mode.btnTitle2_2 forState:UIControlStateNormal];

[cell.btn2_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle2_1] forState:UIControlStateNormal];

[cell.btn3_2 setTitle:mode.btnTitle3_2 forState:UIControlStateNormal];

[cell.btn3_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle3_1] forState:UIControlStateNormal];

[cell.btn4_2 setTitle:mode.btnTitle4_2 forState:UIControlStateNormal];

[cell.btn4_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle4_1] forState:UIControlStateNormal];

cell.star1.frame = CGRectMake(cell.star1.frame.origin.x, 29

河南理工大學畢業設計(論文)說明書

cell.star1.frame.origin.y, 65/5.0*[mode.star1 floatValue], cell.star1.frame.size.height);

cell.star2.frame = CGRectMake(cell.star2.frame.origin.x, cell.star2.frame.origin.y, 65/5.0*[mode.star2 floatValue], cell.star2.frame.size.height);

cell.star3.frame = CGRectMake(cell.star3.frame.origin.x, cell.star3.frame.origin.y, 65/5.0*[mode.star3 floatValue], cell.star3.frame.size.height);

cell.star4.frame = CGRectMake(cell.star4.frame.origin.x, cell.star4.frame.origin.y, 65/5.0*[mode.star4 floatValue], cell.star4.frame.size.height);

return cell;} 4.2.3 分享功能模塊

1實現了分享的功能 運行效果圖如下4.2.3-1

圖4.2.4-1 點擊分享默認界面

在這里分享功能我用了mob第三方分享,通郭mob給的官方文檔,導入系統庫,就可以實現分享功能,具體代碼如下展示:

//注冊shareSDK

[ShareSDK registerApp:@”74f6b479a893“];

//添加QQ空間應用

注冊網址

http://connect.qq.com/intro/login/

[ShareSDK connectQZoneWithAppKey:@”1104627452“

appSecret:@”Usc84bJXmMeTzNCI“

qqApiInterfaceCls:[QQApiInterface class]

tencentOAuthCls:[TencentOAuth class]];

河南理工大學畢業設計(論文)說明書

//添加QQ應用

注冊網址

http://open.qq.com/

[ShareSDK connectQQWithQZoneAppKey:@”1104627452“

qqApiInterfaceCls:[QQApiInterface class]

tencentOAuthCls:[TencentOAuth class]];

//分享點擊事件

-(IBAction)shareButton:(id)sender {

//構造分享內容

id publishContent = [ShareSDK content:@”分享內容“

defaultContent:@”測試一下“

image:[ShareSDK imageWithPath:nil]

title:@”ShareSDK“

url:@”http://www.tmdps.cn“

description:@”這是一條測試信息“

mediaType:SSPublishContentMediaTypeNews];

//創建彈出菜單容器

id container = [ShareSDK container];

[container setIPadContainerWithView:sender arrowDirect:UIPopoverArrowDirectionUp];

//彈出分享菜單

[ShareSDK showShareActionSheet:container

shareList:nil

content:publishContent

statusBarTips:YES

authOptions:nil

shareOptions:nil

result:^(ShareType type, SSResponseState state, id statusInfo, id error, BOOL end){

if(state == SSResponseStateSuccess)

{

NSLog(NSLocalizedString(@”TEXT_ShARE_SUC“, @”分享成功“));

}

else if(state == SSResponseStateFail)

{

河南理工大學畢業設計(論文)說明書

NSLog(NSLocalizedString(@”TEXT_ShARE_FAI“, @”分享失敗,錯誤碼:%d,錯誤描述:%@“), [error errorCode], [error errorDescription]);

}

}];} 4.2.4 收藏功能模塊

1顯示你是否收藏成功 運行效果圖如下4.2.5-1

圖4.2.4-1 點擊收藏顯示界面

收藏功能我這里使用了一個ios本地數據庫codata也是對sqlite的封裝,這里使用了ios的單例模式,把這個數據庫寫在中轉站中,形成一個單例,所謂的單例就是在整個項目工程中只會被實例化一次,不會重復多次實例化,確保每次取到的都是同一個數據庫,代碼如下

@interface AppDelegate : UIResponder

@property(strong, nonatomic)UIWindow *window;

@property(readonly, strong, nonatomic)NSManagedObjectContext *managedObjectContext;@property(readonly, strong, nonatomic)NSManagedObjectModel *managedObjectModel;@property(readonly, strong, nonatomic)NSPersistentStoreCoordinator

河南理工大學畢業設計(論文)說明書

*persistentStoreCoordinator;

在沒次收藏成功的時候都會有一個提示圖標,就是圖里邊的溫馨提示,這里使用了一個 UIAlertView 來實現這個功能具體代碼如下:

//賦值頭像

AFHTTPRequestOperationManager *man = [AFHTTPRequestOperationManager manager];

man.responseSerializer = [AFHTTPResponseSerializer serializer];

[man GET:_myIconUrl parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject){

mode.iconData = responseObject;

//存儲數據

[dele.managedObjectContext save:nil];

//彈出提示 收藏成功

UIAlertView *alv = [[UIAlertView alloc]initWithTitle:@”溫馨提示“ message:@”收藏成功“ delegate:self cancelButtonTitle:@”知道了“ otherButtonTitles:nil, nil];

[alv show];

} failure:^(AFHTTPRequestOperation *operation, NSError *error){

}];下面就是收藏功能的實現,這里收藏功能是通過appdelegate把實例化的數據庫在相應的控制器種取到,把要收藏的app添加到數據庫中實現本地化存儲,從而實現收藏,具體代碼如下:

//取得 實體對象

AppDelegate *dele = [UIApplication sharedApplication].delegate;

AppMode *mode = [NSEntityDescription insertNewObjectForEntityForName:@”AppMode“ inManagedObjectContext:dele.managedObjectContext];

//賦值

mode.appId = self.appId;33

河南理工大學畢業設計(論文)說明書

mode.name = _myName;這樣就把喜歡的app進行了收藏,由于這個數據庫是被寫成了單例,因此里邊的數據是會不斷更新的,而數據內容就是收藏的app,在需要展示的界面取出來數據庫進行刷表就可以實現展示,具體代碼如下:

[_arr2 removeAllObjects];

//從數據庫取出收藏的app

AppDelegate *delegate = [UIApplication sharedApplication].delegate;

NSFetchRequest *request = [NSFetchRequest new];

request.entity = [NSEntityDescription entityForName:@”AppMode“ inManagedObjectContext:delegate.managedObjectContext];

_arr = [delegate.managedObjectContext executeFetchRequest:request error:nil];

//創建一個 滾動視圖,高度根據需要改變

_sView = [[UIScrollView alloc]initWithFrame:self.view.bounds];

_sView.frame= CGRectMake(0, 50, self.view.bounds.size.width, self.view.bounds.size.height);

[self.view addSubview:_sView];

_sView.contentSize = CGSizeMake(self.view.bounds.size.width, 50+(_arr.count /3 +1)*100);

//根據收藏的app個數 創建圖標

for(int i =0;i<_arr.count;i++){

UIImageView *view = [[UIImageView

alloc]initWithFrame:CGRectMake(30+i%3*100, 50+i/3*100, 60, 60)];

//打開人機交互開關

view.userInteractionEnabled = YES;

view.image = [UIImage imageWithData:[_arr[i] iconData]];34

河南理工大學畢業設計(論文)說明書

view.tag = 600+i;

UILabel *label = [[UILabel

alloc]initWithFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y + 60, 60, 20)];

label.textAlignment = NSTextAlignmentCenter;

label.font = [UIFont systemFontOfSize:12];

label.text = [_arr[i] name];

[_sView addSubview:label];

[_sView addSubview:view];

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(gesAction:)];

[view addGestureRecognizer:tap];

//創建 刪除小圖標

UIImageView *view2 = [[UIImageView alloc]initWithFrame:CGRectMake(-10,-10, 70, 70)];

//打開人機交互開關

view2.userInteractionEnabled = YES;//

view2.backgroundColor = [UIColor lightGrayColor];

view2.contentMode = UIViewContentModeTopLeft;

view2.image = [UIImage imageNamed:@”close“];

//添加到 圖標視圖上

[view addSubview:view2];

//判斷是否 隱藏 刪除小圖標

if(!_btn.selected){

view2.hidden = YES;

}

//添加手勢

UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(deleteGesAction:)];

[view2 addGestureRecognizer:tap2];35

河南理工大學畢業設計(論文)說明書

//添加到數組

[_arr2 addObject:view2];App的刪除功能也是在這里實現的,通過點擊設置按鈕,使app的圖標顯示刪除“×”,點擊,把它從數據庫中刪掉,刷新數據,代碼如下: //刪除收藏的數據

-(void)deleteGesAction:(UIGestureRecognizer *)ges{

//根據點擊的view 獲取角標------正好相對應 要刪除的app在arr中的角標

NSInteger index = [_arr2 indexOfObject:ges.view];//

NSLog(@”%ld",index);

//從數據庫取出收藏的app

AppDelegate *delegate = [UIApplication sharedApplication].delegate;

//刪除

[delegate.managedObjectContext deleteObject:_arr[index]];

[delegate.managedObjectContext save:nil];

//刷新頁面

[_sView removeFromSuperview];

[self loadData];4.2.5 搜索功能模塊

1實現app名字搜索顯示 2 點擊可以查看信息 運行效果圖如下4.2.5-1,36

河南理工大學畢業設計(論文)說明書

圖4.2.5-1 搜索結果界面

搜索界面的實現實在原有界面的基礎上加上實現代理方法,用uiseachbar來實現app的搜索功能核心代碼如下

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString{

//清空搜索結果數組

[_searchArr removeAllObjects];

for(AppMode1 *mode in _dataArr){

if([mode.name rangeOfString:searchString].location!= NSNotFound){

[_searchArr addObject:mode];

}

}

return YES;} 37

河南理工大學畢業設計(論文)說明書

第5章 系統測試

系統測試是保證系統質量和可靠性的關鍵步驟,是對系統開發過程中的系統分析系統設計和實施的最后復查。根據測試的概念和目的,在進行信息系統測試。

5.1 功能模塊測試

1.限免模塊的測試,主要測試、接口數據是否能正確顯示,不出現閃退的情況,時間會不會刷新,每個app的星級會不會正確顯示,這些測試中唯獨最后兩項最為麻煩,第一次測試的時候星星的顯示問題總是搞不定,不管怎么調試都是顯示五顆星,和顯示的數據不照應,經過同學的幫忙,忙才發祥是父視圖沒有對子視圖進行切割,還有就是限免的價格是被拉掉的,我是用xib做的拉掉的效果,但是在點擊這個app的時候這個被拉掉的線就會莫名的消失,變成原樣,當時周圍的同學也是每辦法了,這個問題一直拖到了最后,知道有天逛博客時看到有一篇博客寫到點擊cell的時候,cell會變成灰色,當時我就想到了這個問題,我認為我的劃線沒了可能是和cell的背景色沖突了,把這個關掉之后,果不其然,劃線不會消失了。

2.降價模塊測試,主要針對數據解析json的正確應用,josn解析的時候主要注意里邊數據的取值方式,json數據里邊你需要的可能是有一個數組構成的,也可能是一個字典,正當的取值才不會造成無謂的越界現象,還有json數據中并不是所有的數據都是字符串的形勢顯示,也可能會出現NSnumber的數據,當時在后期調試的時候,我的程序就因一個NSNUmber的數據沒有處理好,導致程序崩潰,還很難找,因為我就沒想到我會在這里取值出錯誤。

3.免費模塊測試,主要測試對數據的解析,以及內容的顯示。

4.專題模塊的測試,主要測試cell上的控件是不是能正確的傳值,主要注意block在反向傳值的時候的回調,以及對block的應用,專題模塊這一點可以說的是我耗時最多的一個界面,主要就消耗在界面傳值這一塊,由于cell上的app比較多,對于如何處理我選中的是哪個app是我一度陷入盲區,不知道如何處理,首先想到的方法是取到app的父視圖,但是運行的時候根本不行,知道后邊學習了block才解決了這個問題。

5.詳情頁面的測試,主要測試是不是每個界面都能正確的傳進來數據,以及對數據的展示,數據圖片不一樣多造成的越界現象,圖片的加載相冊功能,分享功能,收藏功能。對周邊應用的具體詳情再次查看,怎么進行數據的處理,詳情頁面在處理的時候,難點就在于怎么把本頁的周邊app再通過點擊app在本頁顯

河南理工大學畢業設計(論文)說明書

示具體的信息,這個問題導致我把程序進行了大修改,煩躁啊,因為前期的邏輯沒處理好,導致這里傳值出問題,不過在我的努力下還是把程序都改了。

在完成逐個模塊測試后,開始對系統進行驗收測試,運行該系統,在運行過程中查找出現的錯誤。

5.2 功能整體測試

在安裝好配置環境的電腦上測試,剛開始出現屏幕混亂,經過反復修改,現在已經能正常運行。用xcode上自動檢測內存工具,檢測出多處內存泄露問題,都已經修改。測試到這個階段就簡單多了,繁瑣的工作都做完了,不過在這個階段我還是發現了一個嚴重的問題,就是內存泄露,原因是我在cell中實例化了一個控件,我當時竟然天真的以為ARC不會有內存泄露,但是還是出現了,cell復用的時候,雖然使用的以前的cell,但是你在cell里邊申請的控件還會一直開辟空間消耗內存,這樣就會導致內存泄露。

河南理工大學畢業設計(論文)說明書

總結與展望

總結

經過一段時間的忙碌,終于把畢業設計的任務完成了。現在我對該系統做一下總結

本項目的開發目標,主要是為了提供iphone手機應用平臺,為用戶更好的體驗iphone手機。設計經過緊張而有序的系統開發,收獲頗豐,感觸頗深。現在對經驗收獲、教訓反思兩大部分總結如下: 經驗收獲:

1.編寫程序前,對已完成設計構思的系統進行主次分析,排好功能實現順序,列出程序編、寫步驟,對于理清編程思路很有幫助。人的邏輯思維可能很發達,在設計當中可以不用筆記,在腦中就能想好三到五個功能的邏輯關系和編寫步驟。但以后我們面對的是一個龐大的系統,大系統下分多個子系統,子系統下分多個功能模塊,功能模塊下分多個功能頁面,功能頁面下分多個子功能,而且子系統、功能模塊、功能頁面、子功能之間的邏輯關系構成了一張復雜龐大的邏輯關系網。這就需要我們在原先做好的設計流程圖上,系統規劃,全面分析,逐步細化,反復斟酌、推敲,然后列出編程計劃。

2.善于借鑒他人的成果,實現自己的功能,可以有效地縮短開發時間,提高工作效率,是快速提高編程能力的最佳途徑。借鑒他人的勞動成果并不是簡單地拷貝別人的源代碼,如果只是這樣的話,你會因為系統經常的報錯,卻束手無策,最后將其認為是雞肋而抱怨連天。應該是先要分析讀透他人的程序思想,取其精華,去其糟粕,使之成為自己的思想,然后將這些功能塊與自己的功能塊融合。

3.在完成這個課題的過程中,遇到了很多問題。對于iOS的開發過程更是頭疼,因為在iOS中有些控件必須接收協議,而且不用手動調用協議中的方法,系統自己調用,比如:UITableView。這個讓我感覺很不可思議,以至于每次非得手動調用協議,但是每次都出錯,后來就記住這個問題了。

4.每編完一個功能,應及時與其它完成功能一起測試,運行無誤后,方可進行下一步開發。這樣做是為了在測試時如果出錯能很方便地找到出錯的環節和病因所在,我們稱之為“step by step”(一步一腳印),對于一個初級的程序開發者來說是很有幫助的。對于編程人員來說每一個環節都是來不得有半點差錯的,每一個功能都是環環相扣,相互關聯,相互作用的

河南理工大學畢業設計(論文)說明書

教訓反思:(1).學習與實踐的結合不當。當我進行程序開發的時候,發現以前學習的知識點到用時卻忘得一干二凈了,也只好重新學習基本知識了。如果以前把知識學得透徹點,理解深刻點,也許在開發過程中可以縮短時間,提高效率。反思自我,歸其原因:不是當時的學習不夠認真,而是缺乏對知識點的運用實踐;對于像我這樣“半路出家”的編程人員來說,只是理解知識點是遠遠不夠的,如果當時沒有經過編譯、運行、調試的過程,很快就會忘記的。

(2).學習目標不專一。我們都知道在學習的時候是最忌諱這個還沒學明白就去學那個的,結果當然是哪個也沒學明白。這個沒學好,就想用另一個,造成學習不深入,學習效果不好。以后一點要記住此教訓。

展望

這次畢業設計項目做得時間挺長的,從開始學習c語言,到后來的高級語言objective-c、UI、初級網絡、高級網絡等。到最后項目的結束,感覺自己學習到了很多知識,但是知道的越多你就會越發的感覺到自己知識的不足,第一次開始認認真真的學習c還是從圖書館里的《21天精通c語言》開始,是一門語言你就要記憶很多東西,我學習的時候覺得最難得不是邏輯而是記憶,到后來的objective-c,這門高級語言的底層是對c語言的封裝,把c的很多邏輯封裝成方法,你只需拿來用就ok了,oc學完的時候已經是年后了,之后學習了UI的界面搭建,以及初級網絡。學完初級網絡就著手寫自己的畢業項目,當時覺得很難,很多知識都不熟悉,還有分享,block等高級網絡的知識還沒有接觸到,因此在初期畢業項目制作過程中只完成了界面的加載數據,界面之間沒有相互的跳轉,很沒有活力,基本的界面搭建完成已經過了一個多星期了,之后有做了bug調試,把出現的問題解決了,這樣這個app才有了形,這個完成之后我就著手學習了高級網絡,接觸到了分享,支付,通信等知識,還學了block的界面傳值,平時學習完都會做一些小的demo來做練習,大概一星期之后才回頭來完善自己的畢業項目,這是的畢業項目也已不是當初的大難題了。

雖然畢業項目做完了,但是功能并不是那么完美,就像我剛開始接觸這門語言時,我會覺得很難辦,到我學的多了,見得多,用的多了,豐富的知識已經讓我感覺到自己入門了,有自己的學習方法了,本來學習就是一個循循漸進的過程,我們每個人都不可能一下子做的很完美,很出色,都需要不斷的完善。我也希望自己在以后的工作中得到更多的知識、經驗。讓自己不斷地進步,做出屬于自己 41

河南理工大學畢業設計(論文)說明書 的獨特的作品。

河南理工大學畢業設計(論文)說明書

參考文獻

[1] 譚克強Objective-C程序設計(第四版)。

[2] 51cto網站oc教學視頻自學。以及對牛人博客的借鑒。[3] 21天精通c語言,河南理工大學,圖書館。[4] 博客園學習,主要學習UI時對我的幫助很大。

[5] cocoaChina第三方庫的使用,對后期做畢業設計,提供很多便利。

[6] 個人覺得最好用的還是度娘,什么問題都可以問她,自學學到的東西才會理解的更 深刻。

[7] DaveMak(美)JackNutting(美)JeffLaMarche(美)著.楊越孫文磊等譯.ios5基礎 教程[M].北京:人民郵電出版社.2013:3 [8] MarkDalrymple(美)ScottKnaster(美)著.楊越等譯.Objective-C基礎教程[M].北 京:人民郵電出版社.2012:7 [9] StephenG.Kochan著.林翼、范俊、朱奕欣譯.Objective-C程序設計(第四版)[M]。北京:電子工業出版社,2012:12 [10] 虞斌著.Ios軟件開發揭秘:iPhone&iPad企業應用和游戲開發[M].北京:電子出 版社,2011:1 [11] 克萊爾(美)著.李強譯.Objective-C2.0Mac和ios開發實踐指南[M].北京:機械 工業61出版社,2011:1 [12] BrianW.KernighanDeninisMRirchie著,徐寶文,李志(譯)TheCProgramming Language[M].北京:機械工業出版社2003:2 [13] 徐松林,黃猛著.cocos2D-x手機游戲開發[M].北京:人民郵電出版社.[14] Ronpatton(美)著.王鈺,曹躍譯.軟件測試[M].北京:機械工業出版社,2006 [15] 王水著.軟件工程[M].河南:河南科學技術出版社,2008:8 [16] 吳潔明著.軟件工程實例教程[M].北京:清華大學出版社,2010:11 43

河南理工大學畢業設計(論文)說明書

謝 辭

在本論文的寫作過程中,我的導師宋成老師傾注了大量的心血,從選題到開題報告,從寫作提綱,到一遍又一遍地指出每稿中的具體問題,嚴格把關,循循善誘,在此我表示衷心感謝,謝謝宋成老師在我撰寫論文的過程中給與我的極大地幫助

同時我要感謝學院的各位老師、同學和朋友。在整個的論文寫作中,各位老師、同學和朋友積極的幫助我查資料和提供有利于論文寫作的建議和意見,在他們的幫助下,論文得以不斷的完善,最終幫助我完整的寫完了整個論文

另外,要感謝在大學期間所有傳授我知識的老師,是你們的悉心教導使我有了良好的專業課知識,感謝這四年來計算機學院對我的栽培,使我成為了一名合格的理工學子。

下載ios簡歷項目怎么寫(精選多篇)word格式文檔
下載ios簡歷項目怎么寫(精選多篇).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    IOS設計規范

    剛入門UI的小伙伴是不是不知道app該怎么切圖、規范是什么?怎么和程序員同學配合,用什么工具更方便,怎么標注自己的設計稿,怎么做到一稿適配多種機型,這篇文章將一一解答你的疑問!......

    iOS教學大綱

    iOS教學大綱 C語言 教學目標:讓學生掌握基本的編程思想,語言結構和常用經典算法。使學生具有基本的編程素養和思維。能夠用c語言描述各類經典過程,記錄各種數據。為之后的應用......

    IOS實踐總結

    河北科技師范學院 IOS 科研技能訓練 個人實習總結 實習類型 教學實習實習單位 指導教師 所在院(系) 班 級 姓 名 學 號 一、實習時間和地點 時間:2013.11.11-2013.11.17......

    IOS培訓心得

    對于剛剛畢業的大學生,從懷揣夢想到現實的迷茫,斷斷續續的了解了社會的艱辛與困苦。經過接連不斷的挫折便開始反思自身的現狀:由于自身的專業技術技能較低,不能為社會創造更多的......

    iOS面試題整理

    1. 用#define定義一個宏,表示一年中的秒數。 @interface USER {NSSTring *name;} @end a) self.name=@”abc”與name=@”abc”的區別? b) self.name=[[NSSTring alloc]initWith......

    ios轉正申請書

    ios轉正申請書 尊敬的領導: 我于XX年7月4日進入公司,根據公司的需要,加入了XXX部,加入了XXX項目組,目前擔任java程序員一職。到今天2個月試用期已滿,根據公司的規章制度,現申請轉為......

    IOS學習筆記

    Objective c學習1. 特殊的空類型 nil,該類型沒有名稱,空引用(nil)是空類型變量唯一的值,該類型可 以轉換為任何引用類型 2. Ios系統中short int 2字節, int 4字節,long int 4字節,lo......

    杭州iOS培訓

    杭州iOS培訓 隨著移動互聯網的發展,不僅一線城市需求iOS開發人才比較大,二線、省會城市對iOS開發人才的需求同樣非常大。杭州iOS培訓:如何才能系統的學習好iOS開發?這是很多學......

主站蜘蛛池模板: 久久人妻av无码中文专区| 天天夜碰日日摸日日澡性色av| 97久久国产亚洲精品超碰热| 久久不见久久见中文字幕免费| 第九色区av天堂| 亚洲国产超清无码专区| 国产精品无码一区二区在线| 99久久久无码国产aaa精品| 蜜桃视频成人专区在线观看| 国产精品夜夜春夜夜爽久久小说| 老司机香蕉久久久久久| 99精品国产成人一区二区| 欧美日本一区二区视频在线观看| 日韩吃奶摸下aa片免费观看| 国内精品国产成人国产三级| 国产精品久久国产精麻豆99网站| 2022久久国产精品免费热麻豆| 自拍偷自拍亚洲精品偷一| 亚洲第一综合天堂另类专| 激情亚洲图片激情亚洲小说| 中文字幕人妻第一区| 国产麻豆md传媒视频| 精品国产不卡一区二区三区| 亚洲精品无码永久在线观看性色| 中文无码av一区二区三区| 精品国产亚洲一区二区三区在线观看| av边做边流奶水无码免费| 亚洲已满18点击进入在线观看| 女人下边被添全过视频| 亚洲经典千人经典日产| 开心五月色婷婷综合开心网| 狠狠综合久久综合88亚洲爱文| 久久99精品久久久久久野外| 久久99国产亚洲高清观看首页| 婷婷色综合视频在线观看| 精品欧洲av无码一区二区三区| 色屁屁www影院免费观看入口| 国产av国片精品jk制服| 欧美亚洲国产一区二区三区| 牲欲强的熟妇农村老妇女视频| 国产成人精品综合久久久久|