簡體   English   中英

瞬態sectionNameKeyPath和NSSortDescriptor NSFetchedResultsController

[英]Transient sectionNameKeyPath & NSSortDescriptor NSFetchedResultsController

我在Core Data中有一個任務列表。 我使用NSFetchedResultsController將它們提取到UITableView中。

我需要自定義訂單中的自定義部分:

  1. 逾期
  2. 活性
  3. 正在進行
  4. 延后
  5. 已完成

為了確定任務應該進入哪個部分,我使用基於相對對象中的其他屬性動態計算的派生瞬態屬性。

遺憾的是,您無法將派生值作為獲取請求使用的排序描述符傳遞。 這是因為fetch依賴於已經要求獲取的數據。 雞蛋。

我理解為什么我不能這樣做,這無助於我解決問題!

我試過了:

  • 將NSFetchedResultsController子類化為“ 自定義節和索引標題創建 ”。 也許我做錯了,但這只是改變了部分的名稱和順序,而不是那些部分有多少東西(這是關鍵的)。

  • 每個部分填充數組並將它們提供給表格(笨重,緩慢但完全有效)。

  • 剔除正在進行和推遲的任務(有效但不理想)。 這樣我可以按dueDate排序並通過瞬態值驅動sectionNameKeyPath。

有沒有人有更好的想法? 有很多問題就像這個問題一樣,但沒有一個問題可以解決。

提前致謝!

干杯

最簡單的解決方案是添加持久的“section”屬性(或轉換現有的transient屬性)。 使其成為一組可排序的值(使用您想要的名稱在運行時顯示)。 無論何時更新任何記錄,都要重新計算並存儲section屬性。

我意識到這聽起來像是在存儲冗余信息,但除了使邏輯更簡單之外,它還可以編制索引,從而加快訪問速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM