我使用Xcode 7.3和Swift 2.2以及NSFetchedResultsController
。是否可以創建配置謂詞和排序描述符來解決此問題所需的提取請求?使用CoreData如何配置獲取請求以查找即將到來的生日?
鑑於Person
具有birthDate
屬性的實體如何配置獲取請求以返回即將到來的生日?這是我曾嘗試:
我創建了一個名爲
birthDateThisYear
瞬態屬性和配置,今年返回的人的生日。但是我發現,您不能在Core Data的提取請求中使用transient屬性。我用
birthDateDayNumber
和birthDateMonthNumber
屬性與birthDate
一個定製的setter沿着非規範化試圖接受的答案here但我無法弄清楚謂語。如果今天是12月31日呢?不知何故,它將需要包裝1月,2月和3月我讀到它可以完成表達式和比較謂詞。但我找不出解決方案。任何人都有這個工作?
我認爲它的工作原理是創建一個稱爲
birthDateInYear2000
的非規範化屬性,但同樣也會遇到同樣的重疊問題。
任何想法?
看起來有前途的!我忽略了說我正在使用'NSFetchedResultsController'。你認爲你的答案可以適應嗎?它似乎並不如此。它需要交給配置好的'NSFetchRequest'。 –
我更新了答案建議用'NSFetchedResultsController'的解決方案。唯一的缺點是'nextBirthDate'屬性必須是持久的。 – vadian
好思想!我會試試看。這對於大型數據集可能不太適用,但是這個應用程序的Person實體數量很少。可能不超過25次。 –