我正在構建一個iPhone應用程序。在數據庫中我有5000條記錄。其中我只在應用程序中顯示50。但是我想問一下,如果我在iPhone視圖中最初創建5000個空單元,即使我顯示50行數據,是否還會有內存問題?iPhone應用內存相關查詢
回答
如果您正確構建表格,則只能使用少數幾個實際的UITableViewCell對象,這些對象會隨着屏幕上的顯示而不斷回收。
即使是50也是安全的。
在具有50個UITableViewCell的內存中有5000個數據對象應該是可以接受的。
尤其是,如果這些數據對象很小,或者您允許CoreData爲您管理數據集,那麼可以爲您做一些工作。
重要的是不要讓5000表細胞視圖。這是非常糟糕的做法。
iPhone的內存量有限,所以您應該小心只顯示該視圖所需的數據。您可以實現無限滾動,當您通過滾動到達屏幕底部時觸發事件並加載下一個25-50條記錄。
http://nsscreencast.com/episodes/8-automatic-uitableview-paging
一件事,你會迅速與canonical way of handling tables學習是模型的大小無關(即,要創建的行數),僅排一小撮實際創建,因此內存佔用量仍然很低。從本質上講,UITableView最初創建並呈現一行屏幕(加上一些更好的度量)。當你開始向下滾動時,控制器認識到它需要繪製一個新行。但是,它也意識到表格頂部的行從視圖中消失了。因此,不是創建一個全新的單元格,而是簡單地將其中一個單元格放在視圖中,並用新信息重新配置它。無論表中有多少行,只有少數幾個單元存儲在內存中。
因此,在您的情況下,內存瓶頸將可能是饋送單元配置的模型。如果您一次將所有5000行加載到內存中,那麼速度可能會很慢並且會佔用內存。但是手邊有幫助:你從桌面控制器得到一個提示,基本上告訴你它想要設置第* n *行。因此,您的模型實際上可以更有針對性,只需加載所需的數據。例如,由於您知道第15行正在渲染,因此請從數據庫中抓取第15行,而不是預先將整個模型預先加載。
這是我用來創建超過5000行而不需要分頁的應用程序的方法。當然,這取決於你的數據集關於你的用戶如何導航。
- 1. TSQL內存相關查詢
- 2. iphone - 應用程序內購買查詢
- 3. iPhone:應用內購買查詢
- 4. Facebook應用程序相關查詢
- 5. MYSQL查詢相關查詢
- 6. 查詢iPhone中的內存管理
- 7. 連接內的相關子查詢?
- 8. Redshift相關子查詢內部錯誤
- 9. 爲內容相關定義XPath查詢
- 10. iPhone:關於iPhone應用程序的查詢提交
- 11. 使用相關子查詢
- 12. 代用相關查詢
- 13. 使用相關子查詢
- 14. iPhone應用程序查詢
- 15. iPhone應用程序查詢
- 16. mysql相關查詢
- 17. 相關查詢2012
- 18. 查詢相關BelongsToMany
- 19. 查詢相關類
- 20. 相關子查詢
- 21. Oracle相關查詢?
- 22. sql查詢相關
- 23. 查詢相關表
- 24. 相關子查詢
- 25. SQL相關查詢
- 26. GtkComboBox相關查詢
- 27. 在Laravel查詢範圍內查詢相關模型
- 28. 錯誤與組由在相關子查詢內的查詢
- 29. 查詢有關訪問iphone
- 30. 它被稱爲聯合相關查詢或相關查詢嗎?