我有一个领域数据库,我正在尝试返回日期。我的查询如下:
var jobsReturned = JobDates.objectsWhere("jobRestarted <= '\(testDate)' ")
我得到的问题是,当我测试时,我收到一条错误,指出“由于未捕获的异常终止应用程序'无效的值',原因:'对象必须是日期类型'
我测试了我的两个变量jobRestarted和testDate,以确保两个变量都是日期。我使用以下代码:
println(" Test date is '\(_stdlib_getTypeName(testDate))' ")
和
println(" jobRestarted is '\(_stdlib_getTypeName(jobRestarted))' ")
两行代码都确认两个变量都是NSDates。当两个变量都是日期时,为什么会出现此错误?
答案 0 :(得分:0)
var jobsReturned = JobDates.objectsWhere("jobRestarted <= %@", testDate)
使用字符串插值将字符串"jobRestart <= '2015-01-27 21:48:03 +0000'"
传递给objectsWhere
,这会导致NSPredicate
将jobRestart
与日期的字符串表示进行比较,但您需要的是NSPredicate
将jobRestart
与NSDate
进行比较。