我使用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次。 –