国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于BaaS服務(wù)的iOS平臺(tái)美食分享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2015-09-26 05:18:30張進(jìn)飛黃曉霞
現(xiàn)代計(jì)算機(jī) 2015年19期
關(guān)鍵詞:縮略圖內(nèi)存美食

張進(jìn)飛,黃曉霞

(上海海事大學(xué)信息工程學(xué)院計(jì)算機(jī)系,上?!?01306)

基于BaaS服務(wù)的iOS平臺(tái)美食分享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

張進(jìn)飛,黃曉霞

(上海海事大學(xué)信息工程學(xué)院計(jì)算機(jī)系,上海201306)

0 引言

得益于移動(dòng)4G技術(shù)推廣,人們使用移動(dòng)互聯(lián)網(wǎng)更加便利。當(dāng)移動(dòng)互聯(lián)網(wǎng)與餐飲行業(yè)結(jié)合在一起時(shí),市場前景十分誘人,在此行業(yè)處于領(lǐng)先地位的企業(yè),估值已達(dá)幾十億美元[1]。這個(gè)方向可以做許多事情,如訂餐、美食推薦、團(tuán)購、點(diǎn)評等。

本系統(tǒng)以美食推薦作為入口,利用iOS設(shè)備提供的定位功能,向用戶推送當(dāng)前所處位置周邊范圍內(nèi)其他用戶分享的美食信息,使用戶了解身邊的美食,以提供更多的選擇。

1 開發(fā)平臺(tái)及技術(shù)

系統(tǒng)采用Objective-C編程語言開發(fā)。Objective-C是編寫OS X和iOS平臺(tái)軟件的主要語言,它是C語言的一個(gè)超集,提供面向?qū)ο缶幊毯蛣?dòng)態(tài)運(yùn)行時(shí)。開發(fā)工具采用Xcode 6.1,它包含iOS 8.1 SDK,可直接用于開發(fā)iOS程序。數(shù)據(jù)的服務(wù)器端保存使用到BaaS服務(wù)。BaaS(Backend as a Service)是一種新型的云服務(wù),它使用統(tǒng)一的API和SDK來連接移動(dòng)應(yīng)用到后端云存儲(chǔ),通過云來集成后端服務(wù)[2]。本系統(tǒng)采用AVOS公司提供的LeanCloud服務(wù)[3]。

2 運(yùn)用BaaS服務(wù)處理數(shù)據(jù)

通過LeanCloud云服務(wù),系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的保存與查詢獲取十分方便和可靠。

在LeanCloud上,使用AVObject對象進(jìn)行數(shù)據(jù)存儲(chǔ),在使用時(shí),不需提前指定AVObject對象包含哪些鍵,只需在使用時(shí)直接設(shè)定鍵值即可[4]。

(1)保存對象

首先建立AVObject對象,為該對象設(shè)置鍵值,然后調(diào)用AVObject的保存方法保存:

在LeanCloud上,查詢使用的是AVQuery對象,首先需要指定查詢的類名稱以初始化該對象,然后設(shè)定查詢條件:

3 針對UITableView類的性能與界面優(yōu)化

UITableView類在iOS開發(fā)中使用頻率非常高,iOS系統(tǒng)自身的軟件如時(shí)鐘、日歷、Mail等均使用此視圖。在本系統(tǒng)中,首頁的數(shù)據(jù)展示、個(gè)人分享歷史中均用到UITableView。

為了節(jié)省內(nèi)存,iOS系統(tǒng)中UITableView采用重用cell的方法,這也容易造成子視圖重疊錯(cuò)亂的問題。此外,UITableView在加載圖片時(shí)還面臨下載圖片阻塞系統(tǒng)UI主線程、圖片加載過多導(dǎo)致系統(tǒng)內(nèi)存占用過多等問題[5]。

本系統(tǒng)為解決上述幾個(gè)問題,運(yùn)用到多線程、本地緩存以及使用縮略圖等技術(shù)。

在2.2節(jié)查詢方法中不再使用[query findObjects],這會(huì)阻塞UI主線程,改為后臺(tái)查詢方法。

通過上傳信息時(shí)生成縮略圖,在信息流中顯示占用內(nèi)存空間幾k大小的縮略圖替代可能上百k的原始圖片。這樣既減少內(nèi)存的占用,又避免下載信息時(shí)等待時(shí)間過長使得用戶體驗(yàn)較差。生成縮略圖方法:

通過這種方法,上百k大小的圖片可以縮小至10k以內(nèi)。

原始圖片數(shù)據(jù)通過file id下載,并將它緩存至本地文件系統(tǒng):

對于獲取到的NSdata格式數(shù)據(jù),調(diào)用存儲(chǔ)對象ZJFImageStore的實(shí)例方法

將數(shù)據(jù)保存到本地文件系統(tǒng)。類ZJFImageStore的imagePathForKey:(NSString*)方法根據(jù)傳入的參數(shù),生成本地存儲(chǔ)文件的路徑。屬性 imageStore是 NSMutableDictionary對象,在將data數(shù)據(jù)存儲(chǔ)至文件系統(tǒng)的同時(shí)將數(shù)據(jù)保存在字典對象imageStore中。

下次請求加載圖片時(shí),先檢查imageStore中是否已存在數(shù)據(jù)對象,因?yàn)閕mageStore對象本身保存在內(nèi)存中,所以可以直接從內(nèi)存中完成加載。否則,緩存則嘗試本地文件系統(tǒng)加載數(shù)據(jù),如果本地文件系統(tǒng)也沒有此數(shù)據(jù),則根據(jù)fileId利用本節(jié)中描述的數(shù)據(jù)存取方法獲取數(shù)據(jù)。

將圖片信息保存在imageStore字典對象中的另一個(gè)好處是,在遇到低內(nèi)存狀況時(shí)可以方便地清除這些已加載的資源。

當(dāng)下一次檢索請求到達(dá)時(shí),緩存重新加載保存即可。

4 結(jié)語

系統(tǒng)開發(fā)過程使用BaaS云服務(wù)作為數(shù)據(jù)的永久性存儲(chǔ)解決方案,可以降低應(yīng)用開發(fā)成本。作為移動(dòng)應(yīng)用開發(fā)者,可以在開發(fā)初期嘗試使用這項(xiàng)服務(wù)。另外,作為一款iOS應(yīng)用,內(nèi)存管理與應(yīng)用體驗(yàn)是開發(fā)者需要關(guān)心的核心問題,本系統(tǒng)通過運(yùn)用本文提出的解決方法,最終形成一款易用可靠的iOS美食分享系統(tǒng)。

[1]美團(tuán)VS餓了么:餐飲界“老大”頭銜爭奪戰(zhàn)http://money.163.com/15/0228/08/AJHCSBDJ00253G87.html.

[2]BaaS服務(wù)的定義、發(fā)展以及未來http://www.infoq.com/cn/articles/the-definition-development-and-future-of-baas-services.

[3]About LeanCloud https://leancloud.cn/about.html.

[4]Joe Conway,Aaron Hillegass等著.iOS編程.夏偉頻譯.武漢:華中科技大學(xué)出版社,2013.3.

[4]IOS/OS X數(shù)據(jù)存儲(chǔ)開發(fā)指南https://leancloud.cn/docs/ios_os_x_guide.html.

[5]黃天柱.iOS開發(fā)UITableView加載圖片的內(nèi)存管理.計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(9):113-118.

iOS;BaaS;UITableView;Cache

Design and Implementation of Food Share System on iOS Platform Based on BaaS Service

ZHANG Jin-fei,HUANG Xiao-xia
(Department of Information Engineering Shanghai Maritime University,Shanghai 201306)

1007-1423(2015)19-0078-03

10.3969/j.issn.1007-1423.2015.19.019

張進(jìn)飛(1991-),男,安徽宿州人,本科,在讀碩士,研究方向?yàn)閕OS開發(fā)、推薦系統(tǒng)

2015-04-23

2015-05-19

該系統(tǒng)是一款iOS平臺(tái)的美食分享系統(tǒng),旨在利用iOS設(shè)備的定位功能為用戶提供周邊的美食信息,滿足用戶通過這款應(yīng)用發(fā)現(xiàn)周邊美食的需求。系統(tǒng)利用BaaS服務(wù)保存和獲取數(shù)據(jù),并運(yùn)用本地緩存、縮略圖等方法解決UITableView類的內(nèi)存管理和頁面加載問題。

iOS;BaaS;UITableView;緩存

黃曉霞(1968-),女,甘肅天水人,博士,副教授,研究方向?yàn)榍度胧较到y(tǒng)、計(jì)算機(jī)原理

The system is an iOS gourmet share system,aims to use iOS devices positioning function to provide users with the surrounding food information,meets the need of users to find nearby food..The application uses BaaS service to save and retrieve data,and uses the method of local caching,thumbnail to solve the problem of the memory management and page load of the UITableView class.

猜你喜歡
縮略圖內(nèi)存美食
開啟Office文檔縮略圖預(yù)覽
“春夏秋冬”的內(nèi)存
美食大作戰(zhàn)
兒童繪本(2017年10期)2017-07-05 18:38:01
美食
Coco薇(2017年6期)2017-06-24 23:29:55
美食都被玩壞了
美食的誘惑
快速修改IE11選項(xiàng)卡下的網(wǎng)站縮略圖
電腦迷(2014年4期)2014-04-29 16:46:56
基于內(nèi)存的地理信息訪問技術(shù)
在TC界面以縮略圖查看圖像文件
電腦迷(2012年22期)2012-04-29 20:30:54
千篇一律,不如用縮略圖
電腦迷(2012年22期)2012-04-29 00:44:03
贵溪市| 团风县| 库尔勒市| 屏南县| 调兵山市| 青冈县| 开阳县| 广丰县| 高台县| 武陟县| 永善县| 杭锦旗| 廉江市| 南部县| 元谋县| 汶川县| 从江县| 德保县| 绵竹市| 涟源市| 富裕县| 达拉特旗| 观塘区| 石棉县| 东乡县| 道真| 安徽省| 离岛区| 鹤峰县| 宁夏| 梁山县| 东辽县| 石阡县| 福泉市| 彰化县| 宣化县| 当阳市| 水富县| 南川市| 江川县| 祁阳县|