我的問題聽起來有點混亂,但我找不到更好的標題。讓我解釋一下:我正在開發一個使用CoreData來存儲對象並使其持久化的iOS應用程序。我想在UITableView
中顯示存儲的對象。每個對象都包含一個日期。我希望我的表視圖顯示按日期排序的對象,每個月是該表視圖中的一部分。只從CoreDate或所有東西獲取所需的數據?
+--------------------+
+--- March 2016 ---+
+--------------------+
+ - Entry 1 +
+ - Entry 2 +
+--------------------+
+-- February 2016 --+
+--------------------+
+ - Entry 1 +
+ ..... +
.
.
.
.
+--------------------+
由於表視圖需要知道多少行和部分有顯示的數據之前,我需要知道至少有多少項有我的CoreData存儲裏面。
方法1
我只取每個對象的日期,並告訴表視圖有多少行顯示。當數據源方法cellForRowAtIndexPath
被調用時,我會爲我需要的對象提取數據。 CoreData的速度足夠快嗎?或者用戶不得不等待數據加載?
方法2
我取從我的CoreData存儲的一切,「存儲」在我ViewController
持有表視圖中的對象。也許它需要大量的內存來保存每一個對象的內存。
方法3(懶加載?)
我取從CoreData最新的10-20對象。當用戶向下滾動表格視圖並即將到達最後一個條目時,我獲取下一個10-20個條目並顯示它們。我最初加載的條目怎麼樣?我應該讓他們記憶嗎?或者如果用戶滾動到頂部再次抓取它們?
我不想在這上面「浪費」時間,並且自己嘗試每一個時間,我希望你能幫助我,而且有人有過這種東西的經驗。謝謝!
方法3最適合你。提取對象後,將它們存儲在視圖控制器中的變量數組中。當用戶提取更多內容時,追加你的數組並重新加載你的表。 請記住,只有在您需要的情況下,您也可以提取計數,但這可能不是此處的最佳策略。 –
你看過'NSFetchedResultsController'嗎? –