iPhone應用:Sqlite和UITableView實現大數據瀏覽案例
iPhone應用中關于Sqlite和UITableView實現大數據瀏覽案例分析是本文要介紹的內容,主要是來學習iphone應用總數據處理的操作,具體內容來看本文詳細講解。在開始學習iPhone開發的時候就捉摸 AppStore這樣的程序時怎么實現的, 動態的從服務器抓取內容,再在表格中顯示。
伴隨著twitter的火爆, 越來越多的軟件實現了此種方式來顯示twitter消息, 不巧公司也要做twitter相關的東西,正好借此機會試探著實現一下這種顯示功能。
iPhone應用程序和傳統的桌面程序的***不同在于內存有限, 管理內存成了iPhone開發中時時刻刻需要謹記的事情。類似的功能在桌面程序上無非是將down下來的數據緩存于內存中,需要的時候畫出來即可。 此法在iPhone上切不可行,雖然UITableViewCell可與reuse重復使用以節約內存使用量, 但是數據還是需要host在array或者dictionary中,必然導致程序實用大量內存兒崩潰退出。
還好,iPhone系統內置sqlite微型數據庫, 這么好的查詢插入引擎不善用那就是罪過了。
言歸正傳, 基本思路是這樣的: 從服務器讀取內容,以twitter為例,先創建消息數據表
- create table public_timelines (id integer primary key autoincrement, user varchar(40),
- userurl text,body text, created real, created_string text,
- imageurl text, ordernum int, userid varchar(20), user_screenname varchar(40));
獲取public timelines得到以xml形式存在的message條目,解析xml后將每條消息插入數據表, 寫入成功后發送reload消息給table以重新填充表格單元內容, 如圖
如果消息記錄超過一條, 記得在
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
中返回消息記錄 + 1, 因為***一個cell需要實現 Get More …功能。
就像上一步說的, 點擊***一個cell也就是Get More…時,在此從服務器獲取 新的timelines, 將其解析再寫入數據表中, 每次刷新時將數據表清空,否則顯示的消息會越來越多:), Get More 工作狀態大概時這樣的,如圖:
如此, 程序實用的內存非常小, 每一條消息內容都是在需要的時候從數據庫文件中讀取, 減小了內存使用量就增加了程序的穩定性, 這對于成功的軟件來說是非常必要的。
這篇小文只是對這樣一個實現技術做了簡單的介紹, 其中還有很多細節需要考慮, 比如:對sqlite的封裝,以便于使用; 采用NSURLConnection方式下載數據以及post數據的實現; 還有xml解析可以使用iPhone SDK本身的NSXML* 系列API 也可以使用libxml, 具體當然根據個人習慣來選擇。 針對Twitter, 已經有很多很好的開源庫可以直接使用,比如 TwitterEngine
小結:iPhone應用:Sqlite和UITableView實現大數據瀏覽案例分析的內容介紹完了,希望通過本文的學習能對你有所幫助!