概述的iOS - 核心數據 - 的UITableView - 更新計算值 - NSFetchedResultsController
我有使用核心數據(
NSFetchedResultsController
)和表視圖在iOS項目。我有一個名爲「joingDate」的字段。我在表格視圖單元格上有一組標籤來表示數據。
如果joinDate是今天/明天,那麼我想顯示爲「今天」或「明天」,而不是指定實際日期。
我只是在想,我會檢查lastCheckedDate(上一次檢查日期的時間),如果它超過一天,那麼我將不得不更新所有那些加入日期的行中的標籤, 「今天或明天」。
在數據庫中,「JoiningDate」將作爲日期存儲,只有標籤需要以特定格式顯示「今天」/「明天」/日期。
我實現了以下方法,其中標籤「joingDateComments」根據它的當前日期進行更新。
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
問題
注意 - 我使用NSFetchedResultsController
- 什麼是更新其中有一個
joiningDate
今天/明天所有這些行標籤的最佳方法? - 我應該重新加載表中的所有記錄嗎? (但這隻會影響幾行)。
- 我應該循環遍歷所有索引並檢查和更新。我不知道這會工作,因爲我使用
NSFetchedResultsController
。 - 我是否應該使用瞬態數據,以便我可以查詢數據庫並獲取今天/明天具有「JoingDate」的記錄,並更新瞬態字段
JoingDateComments
,以便這些記錄將自動被NSFetchedResultsController刷新
答:
PLS經過安德魯的意見。
謝謝安德魯,你說的話有道理。我遇到的唯一問題是「joinedDate」存儲在數據庫中,當我想顯示單元格時,我會檢查它是否在昨天/今天/明天並提供相應的評論,但當前日期不斷變化,並且在某些時候,它需要刷新。現在我做一個家務保留任務,通過在應用程序啓動時查詢數據庫來檢查需要更新的記錄/從另一個屏幕來到此屏幕。我在數據庫中有一個單獨的字段來表示日期類型(今天/明天/昨天) – user1046037
user1046037,這與Core Data無關。它與查找可見的表格視圖單元格和更新日期指示符有關。爲什麼要將日期字符串的格式保留在您的模型中(今天/明天/昨天)?您只需比較NSDate.date即可。你知道,MVC和所有這些......我認爲你正在使這個問題比它需要的更困難。順便說一下,iOS會在發生重大時間變化時向您發送通知。你可以使用它來觸發你的UI更新。安德魯 – adonoho
謝謝安德魯,如果我不存儲在數據庫中,我怎麼會知道哪些單元格顯示錯誤的字符串。如果不存儲數據庫,那麼我必須完成所有數據的重新加載。因此,現在我存儲哪些記錄的標籤爲「昨天」/「今天」/「明天」,以便我可以查詢它們並在昨天和後天之間的記錄一天過去時更新它們。關於通知。每個應用程序只有64個插槽,並在大多數情況下達到極限,所以我不想使用通知。 – user1046037