這是一個理論問題而不是一個編程問題。正如你所知道的,當你在iOS中實例化一個表格視圖時,你必須考慮出列和重用表格單元格,當它們滾動進入和離開視圖時。iOS:爲什麼UITableView出列和重用單元格?
令人困惑的是,所有填充單元格的數據都被緩存了。當您在Safari瀏覽器中查看網頁時,您將滾動瀏覽經過滾動的更多圖像和文本。我安裝的iOS遊戲比簡單的桌子使用了更多的數據(例如Asphalt 6)。所以我只是很好奇爲什麼蘋果會出現和重複使用表格單元的麻煩。謝謝。
這是一個理論問題而不是一個編程問題。正如你所知道的,當你在iOS中實例化一個表格視圖時,你必須考慮出列和重用表格單元格,當它們滾動進入和離開視圖時。iOS:爲什麼UITableView出列和重用單元格?
令人困惑的是,所有填充單元格的數據都被緩存了。當您在Safari瀏覽器中查看網頁時,您將滾動瀏覽經過滾動的更多圖像和文本。我安裝的iOS遊戲比簡單的桌子使用了更多的數據(例如Asphalt 6)。所以我只是很好奇爲什麼蘋果會出現和重複使用表格單元的麻煩。謝謝。
這不是模型中的數據量。關於創建單元格視圖所用的內存量更是如此。如果我有一張桌子可以創建超過1000個對象,那麼爲什麼只有在屏幕上出現大約十幾個對象時纔會創建它們?不要只考慮所保存和顯示的數據,考慮顯示數據的對象(UITableViewCell
)中佔用的內存。
我認爲這是因爲malloc和free是昂貴的(分別在堆中創建和銷燬對象),所以它是防止堆抖動 – 2012-07-12 21:29:11