日期保存为 NSStrings 的核心数据搜索

Core Data search where dates are saved as NSStrings

我正在努力创建一种搜索机制,用户可以在其中指定要搜索的字段、要使用的运算符以及要搜索的值。更像是高级搜索。但是,我还需要搜索日期和日期范围,但问题是日期被声明为 NSStrings 而不是 NSDates。所以基本上它们是表示日期的字符串(而不是我所说的字面上的日期)。表示数据库中日期的字符串示例是:2014-11-25T00:00:00+1000.

因此,在不将迁移中的值及其各自字段更改为 NSDates 的情况下,有没有一种方法可以保留我们已有的内容,而是为我的谓词查询指定一种转换条件,以便 Core Data 可以转换NSString 字段值到 NSDates,然后进行比较以确定记录是否符合指定条件?

我相当确定 CoreData 无法为您将 NSStrings 转换为 NSDates,您需要做的是创建一个解析算法来为您转换它。该格式看起来像是一种用于 Web 开发的 ISO8601 日期格式,所以我假设您已经从某个地方下载了这些数据?

我之前开发过日期解析算法,通过适当的测试,您可以非常快速地构建一些非常强大的东西。然后您可以做的是将 NSDate 转换为字符串,然后将这些字符串输入到您的提取谓词中。