freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于ios的派卡系統(tǒng)設(shè)計與應(yīng)用(編輯修改稿)

2025-07-09 21:17 本頁面
 

【文章內(nèi)容簡介】 iPhone 開發(fā)之初就是面向個人的通信設(shè)備,至今主要還是娛樂和社交功能,因此在思想不夠成熟的時候很容易分散辦公者注意力。 iPhone 等電子設(shè)備很多畫面都采用明亮的色彩,視覺刺激過于強烈,長時間的觀看會引影響人體健康。 iPhone 不支持移動存儲設(shè)備,在離開 WIFI 的環(huán)境中想要分享數(shù)據(jù)顯得很不方便。 iPhone 是現(xiàn)階段移動辦公輔助工具在業(yè)界的最高水準,如今市場上也出現(xiàn)了很多手機,如基于 Android 系統(tǒng)的小米、華為、三星等,基于 WP 系統(tǒng) 的諾基亞、 HTC、三星等。雖然有部分設(shè)備硬件性能、便攜性上超越了同期的 iPhone,但是是應(yīng)用的數(shù)量與質(zhì)量、用戶體驗、續(xù)航能力、性價比等還是不能和 iPhone 比擬的。因此只要合理使用,在條件允許的情況下 iPhone 是移動辦公的不二良選。 技術(shù)簡介 MVC 模式 MVC全名是 Model View Controller,是模型 (model)-視圖 (view)-控制器 (controller)的縮寫,也是構(gòu)成這種框架的三個部分如圖 所示。 MVC 是一種軟件設(shè)計的典范思想,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界 面顯示分離的方法組織代碼,降低耦合,可以說任何一個完整的應(yīng)用都是由 MVC 構(gòu)成的。 a) Model(模型) 是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分,通常模型對象負責在數(shù)據(jù)庫中存取數(shù)據(jù)。模型不需要知道數(shù)據(jù)是怎樣被試圖呈現(xiàn)的,也不關(guān)心是怎樣被控制器操作的。 7 圖 MVC 框架圖 b) View(視圖)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。視圖不能直接與數(shù)據(jù)通信,使用 dataSourcr 接口從控制器獲取數(shù)據(jù)信息。 c) Controller(控制器)是應(yīng)用程序中處理用戶交互的部分。通常 控制器負責從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。在 iOS 程序開發(fā)過程中視圖和控制器之間的通信是固定的,主要通過 outlet 和 action 來實現(xiàn)。 在 MVC 架構(gòu)下,視圖和模型是兩個完全獨立的成分,以控制器為中介進行交互者,兩者沒有直接的聯(lián)系。開發(fā)者編寫的對象可以很容易劃分到其中的某個部分,也就是低耦合,這種模式適用與大多數(shù)語言編程,不僅僅是 ObjectiveC。 iOS 內(nèi)存管理 程序運行時,開辟的內(nèi)存空間。使用它,釋放它的過程,寫的好的程序盡可能少使用內(nèi)存。 ObjectiveC 的內(nèi)存 管理機制與 .Net/Java 那種全自動的垃圾回收機制是不同的,它本質(zhì)上還是 C 語言中的手動管理方式,只不過稍微加了一些自動方法。內(nèi)存管理模式基于對象的 “所有權(quán) ”上。任何對象都會被有一個或多個使用者引用,只要對象還有一個使用者,該對象就應(yīng)該繼續(xù)存在。如果一個對象沒有使用者了,系統(tǒng)將自動銷毀它。為了讓開發(fā)者清晰的了解:使用對象和不再使用對象的場景, Cocoa 設(shè)置了以下策略: (1)管好自己創(chuàng)建的對象。開發(fā)者使用 alloc、 new、 copy 和 mutableCopy 來創(chuàng)建對象。 (2)使用 retain 來獲得對象的所有 權(quán)。某個函數(shù)接受的對象,通常保證在該函數(shù)調(diào)用期間仍然可用,并可以安全返回對象給上層調(diào)用者。開發(fā)者在以下兩種情況下使用 retain a 在 “訪問函數(shù) ”( accessor)的實現(xiàn)中或者在 init 方法,為了將對象作為自己的屬性。 b 防止對象被其他操作釋放掉,從而變?yōu)闊o效的對象。 (3)當你不在需要的時候,必須放棄對象所有權(quán)。 單例、委托、通知、 block 單例設(shè)計模式 Singleton,單例模式的意思就是只有一個實例,單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例,這個類稱為單例 類。單例模式的要點有三個;一是某個類只能有一個實例;二是它必須自行創(chuàng)建這個實例;三 8 是它必須自行向整個系統(tǒng)提供這個實例。單例模式的優(yōu)點有:實例控制: Singleton 會阻止其他對象實例化其自己的 Singleton 對象的副本,從而確保所有對象都訪問唯一實例。靈活性:因為類控制了實例化過程,所以類可以更加靈活修改實例化過程。在objectivec 中要實現(xiàn)一個單例類,至少需要做以下四個步驟: a)為單例對象實現(xiàn)一個靜態(tài)實例,并初始化,然后設(shè)置成 nil。 b)實現(xiàn)一個實例構(gòu)造方法檢查上面聲明的靜態(tài)實例是否 為 nil,如果是則新建并返回一個本類的實例。 c)重寫 allocWithZone 方法,用來保證其他人直接使用 alloc 和 init 試圖獲得一個新實力的時候不產(chǎn)生一個新實例。 d)適當實現(xiàn) allocWitheZone, copyWithZone, release 和 autorelease。 delegate 中文叫做委托,通常會用在 class 內(nèi)部把一些事件處理 委托 給別人去完成。委托設(shè)計模式的實質(zhì)就是指針的傳遞。傳遞指針的問題在于,對方持有了對象指針之后是不安全也不合理的,因為當有了對象指針就可以操作對象中任 何內(nèi)容,所以這時候采用委托就很好的避免了對指針的操作。舉個例子, XML Parser 可能他知道怎么 parse xml,但是 parse 到的東西要怎么處理 xml parser 可能不知道。所以 NSXMLParser 就提供了一個 NSXMLParserDelegate 給 client 去實作,當 parse 到某個 element 的時候,就 callback delegate 所定義的 message, 讓他 client 自己去決定怎么去處理這個 element。 通知即 NSNotificationCenter,是專門供程序中不同類間 的消息通信而設(shè)置的。每個運行中的 application都有一個 NSNotificationCenter 的成員變量,它的功能就類似公共欄。對象注冊關(guān)注某個確定的 notification(如果有人撿到一只小狗,就去告訴我 )。我們把這些注冊對象叫做 observer。其它的一些對象會給 center 發(fā)送 notifications(我撿到了一只小狗 )。 center 將該 notifications 轉(zhuǎn)發(fā)給所有注冊對該 notification 感興趣的對象。我們把這些發(fā)送 notification 的對象叫做 poster。 block 的實際行為和 Function 很像,最大的差別是在可以存取同一個 Scope 的變量值。 block 實體形式如下: ^(傳入?yún)?shù)列 ){行為主體 }。 block 實體開頭是 “^”,接著是由小括號所包起來的參數(shù)列 (比如 int a,int b,int c),行為主體由大括號包起來,專有名字叫做 block literal。行為主體可以用 return 回傳值,類型會被 piler 自動辨別。如果沒有參數(shù)列要寫成 : ^(void)。 3 軟件體系架構(gòu)與設(shè)計 9 軟件整體架構(gòu)設(shè)計 派卡系統(tǒng)平臺 iPhone 客戶端的構(gòu)建完全遵循 MVC 的設(shè)計模式,同時構(gòu)建基于 iOS系統(tǒng)的軟件所使用的 SDK 都是遵循 MVC 設(shè)計模式的。根據(jù)公司需求,軟件首先需要實現(xiàn)與服務(wù)器之間的數(shù)據(jù)通信,然后軟件框架分為派卡首頁、派卡記錄統(tǒng)計、信息查詢錄入、套餐實時報價等模塊,具體框架 如 圖 。 圖 客戶端功能模塊圖 框架采用基于 C/S 模式的三層架構(gòu),分別是:用戶界面層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層。界面層主要由 iPhone 客戶端完成,業(yè)務(wù)邏輯層在 web 服務(wù)器上,數(shù)據(jù)層主要是寫本地數(shù)據(jù)庫和緩存。 10 功能性需求分析與設(shè)計 網(wǎng)絡(luò)通信模塊 網(wǎng)絡(luò)通信是本 應(yīng)用軟件的基本支撐,通過訪問網(wǎng)絡(luò)得知服務(wù)器數(shù)據(jù)的變化,從而呈現(xiàn)不同的課程也界面功能。當網(wǎng)絡(luò)通信故障、或者網(wǎng)絡(luò)切換時,需要有相應(yīng)的提示信息告知用戶。 登錄模塊 用戶登錄功能是本應(yīng)用軟件的一項基本功能,用戶必須在登錄狀態(tài)下進行查詢、錄入等功能。在一定得時間內(nèi),應(yīng)用軟件會保存用戶的登錄狀態(tài),勉強了用戶反復(fù)登錄的麻煩。用戶必須輸入公司發(fā)放的用戶名和密碼組合,使用虛擬鍵盤登錄。會在本地判斷輸入信息是否合法,然后發(fā)送給服務(wù)器比較。服務(wù)器返回 “登錄成功 ”時登入系統(tǒng),否則提示錯誤,需要重新登錄。 用戶注冊模塊是為 了用戶使用本應(yīng)用軟件的特殊功能的通道,用戶登陸時,同一個賬號只能激活一臺 iPhone 手機,若再激活另外設(shè)備,則需要進行系統(tǒng)備案,需要后天進行審批。應(yīng)用軟件登錄模塊的實際圖 如圖 所示。 圖 用戶登錄子模塊實際圖 首頁模塊 系統(tǒng)首頁界面是用戶登陸之后看見的第一個界面,派卡首頁是需要登錄才能查看的界面,通過相應(yīng)的操作可以跳轉(zhuǎn)到相應(yīng)的功能模塊。課程首頁分為車牌錄入、套餐查詢和記錄統(tǒng)計。其中套餐查詢是由服務(wù)器返回套餐分類以及詳情查看的模塊,記錄統(tǒng)計將由服務(wù)器返回之前的派卡記錄,接下來的就是本系 統(tǒng)的車牌錄入模塊,車牌錄入是通過車牌信息進行相關(guān)操作的模塊。 派卡首頁 模塊的實際圖 如圖 所示。 11 圖 派卡首頁模塊實際圖 車牌錄入模塊 車牌錄入模塊是本應(yīng)用軟件重點功能,車牌錄入模塊是通過輸入相應(yīng)車牌,查找相應(yīng)車牌信息,對之前有過記錄的車牌信息進行顯示,已經(jīng)聯(lián)系人的添加以及修改,通過添加派卡記錄,可對相應(yīng)車牌的客戶進行禮品贈券的派發(fā)以及記錄。其中車牌的輸入可以通過手動輸入或者通過拍照識別車牌進行操作,拍照識別是通過手機拍照,然后截取圖片,將圖片傳入底層 C++模塊,讓底層 C++識別車牌,然 后返回識別出來的車牌。 車牌錄入 模塊的實際圖 如圖 所示 。 圖 車牌錄入模塊 實際圖 派卡記錄查詢模塊 派卡記錄查詢模塊是客戶端通過 post 請求,與服務(wù)器后天進行數(shù)據(jù)交互,獲得之前該登陸賬號的派發(fā)記錄,然后通過界面的形式,將數(shù)據(jù)顯示出來。能給讓用戶對自己之前的派發(fā)記錄有一個了解。 派卡記錄查詢 模塊的實際圖 如圖 所示 。 12 圖 派卡記錄查詢模塊 實際圖 套餐報價查詢模塊 套餐報價查詢模塊是本應(yīng)用軟件的對現(xiàn)有套餐顯示的界面,在用戶在進行派卡之余可以通過套餐資訊了解相應(yīng)的套餐信息 ,增加用戶的知識面。從了提高用戶對套餐的了解,更好的服務(wù)客戶。給用戶帶來一個較好的使用體驗,會有眼前一新的感覺。 套餐報價查詢 模塊的實際圖 如圖 所示 。 圖 套餐報價 查詢模塊 實際圖 設(shè)置模塊 設(shè)置模塊包含版本更新,默認車牌前綴設(shè)置以及緩存,其中 首次登錄更新緩存。 設(shè)置 模塊的實際圖 如圖 所示 。 13 圖 設(shè)置 模塊 實際圖 4 項目功能實現(xiàn) 啟動界面動畫實現(xiàn) 啟動界面在 iOS Apps 中比較常見 ,也包括一些桌面應(yīng)用程序,就是啟動應(yīng)用軟件的時候看到的第一個界面。 iPhone 啟動界面分為 兩種方式,一種是使用系統(tǒng)自帶的,按規(guī)則定義啟動圖片名稱即可,顯示為 1 秒,要想延長時間,用[ nsthread sleepForTimeInterval:] ,另一種就是自定義 uiivew,加到 window 中去。由于本應(yīng)用軟件想給用戶一個不一樣的體驗,同時也向用戶加入了一個微廣告的目的。所以在不影響應(yīng)用軟件正常啟動效果的情況下,采用了兩種方式相結(jié)合。即在應(yīng)用軟件按方式一添加啟動畫面的同時,在 對象內(nèi)的 application didFinishLaunchingWithOptions方法里面加入了一個 UIView 動畫,再使用 NSTimer 讓動畫結(jié)束后隱藏啟動畫面。這樣即有了良好的用戶體驗,又加入了不會讓用戶反感的微廣告。這種做法已經(jīng)被業(yè)界接受,很多應(yīng)用軟件都嘗試著在這樣做。 網(wǎng)絡(luò)與數(shù)據(jù) 網(wǎng)絡(luò)通信模塊實現(xiàn) 網(wǎng)絡(luò)通信模塊負責實現(xiàn)服務(wù)器與客戶端之間的數(shù)據(jù)通信功能, iOS 系統(tǒng)的網(wǎng)絡(luò)通信對象是 NSURLConnection, NSURLConnection 提供對網(wǎng)絡(luò)異步加載請求的支持,并且將獲取的數(shù)據(jù)返回給代理方法 connection didReceiveData。提供了簡單的 接口去創(chuàng)建和取消連接,同時使用 delegate 方法去支持連接過程的反饋和控制 。在實際開發(fā)中直接用的不多,所以對 NSURLConnection 進行了封裝,實現(xiàn)了 DownLoad 類和 DownLoadFinish類。在原有單條數(shù)據(jù)通信外,實現(xiàn)了多線程下載,也就是同時多條數(shù)據(jù)下載。DownLoadFinish 為單例類,整個應(yīng)用軟件中使用的 DownLoadFinish 都是同一個對象,方便了對服務(wù)器通信的管理。日常生活中,用戶可能在不同的網(wǎng)絡(luò)環(huán)境下使用應(yīng)用軟件,因此使用了 Reachability 和 Reachability 來檢測網(wǎng)絡(luò)環(huán)境的連接情況, Reachability 給定了三種網(wǎng)絡(luò)狀態(tài),如表 所示。應(yīng)用軟件啟動的同時會對網(wǎng)絡(luò)環(huán)境進行檢查,在 14 中完成此工作。在應(yīng)用軟件運行的過程中,應(yīng)用軟件會對網(wǎng)絡(luò)連接做實時的檢測,當網(wǎng)絡(luò)通信故障或者網(wǎng)絡(luò)環(huán)境切換時,會給用戶一個 UIAlertView 的提示。 表 Reachability 三種網(wǎng)絡(luò)狀態(tài) 網(wǎng)絡(luò)狀態(tài) NotReachability 無連接 Reachability Via WiFi WiFi 網(wǎng)絡(luò)連接 Reachability Via WWAN 3G/GPRS 網(wǎng)絡(luò)連接 在應(yīng)用軟件中,檢測網(wǎng)絡(luò)環(huán)境的相關(guān)核心代碼如下所示。
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1