2011-10-05 49 views
1

首先,請相信我,當我說我確實先搜索這個答案...很多。我發現了很多例子,但沒有一個表現得和我需要的類似。雖然我本來可以用錯誤的關鍵詞進行搜索,但我不這麼認爲。iPhone tableview分頁

這裏是我的問題:

我必須通過返回一個龐大的數據量的查詢被填充表視圖。這些數據用於餐館列表,價格評級和ID。但數據庫中有這麼多餐館,它會填滿內存,並且大部分時間會使應用崩潰。 (我假設這是怎麼回事,因爲如果查詢是有限的,代碼工作得很好,並且一直在其他頁面上工作,我查詢沒有儘可能多的數據返回的東西。)

我是什麼想要做的是爲該頁面的應用程序的表格視圖進行分頁。我沒有看到如何使用「顯示更多」方法,或滾動到底部時的自動加載,因爲如果向下滾動到列表的末尾,您仍然會遇到同樣的問題:填充內存。有沒有一種方法可以在網頁分頁的位置(如果它們不在第一頁上)在頂部有一個「Previous」單元格,並且底部的「Next」單元格(如果不是最後一頁)?這些將不得不清除當前視圖中的單元格,並刪除數據,以便我們不只是添加會導致相同問題的數據,然後執行新的查詢來填充單元格。

當然,我不指望有人坐在這裏爲我編寫所有的代碼。我需要的主要部分是如何爲下一個和上一個單元格設置單元格。之後我應該能夠找出其他問題,但我不知道如何去清除當前表格視圖中的數據。

感謝您的任何幫助或建議。

回答

0

我認爲你可以用滾動顯示更多的方法或加載,你說問題是你仍然加載一堆所有的數據,你會用盡內存,但你可以避免這種情況...一選項是,保存到磁盤或只是釋放數據,而不會顯示在表視圖上,您​​可以使用UITableView的indexPathsForVisibleRows方法來查看哪些單元格可見,並且使用該信息您應該知道哪些數據可以放心地發佈......您能做到這一點無論當你收到內存警告,或者也許因爲細胞被滾動到屏幕(由你)......

希望這有助於

丹尼爾

+0

感謝您的評論。我會研究這種方法,看看它是如何工作的。 – James

+0

單元格會自動清除並重用,所以您不必擔心這一點。相反,您應該關心如何存儲提取的數據,並在數值放入單元格後將其釋放。您可以使用UIScrollView委託方法(UITableView是UIScrollView的子類)來確定何時需要重新載入下一個和以前的數據。 –