我正試圖在swift中搜索兩個日期之間的記錄。 我存儲如下圖所示日期:使用核心數據在兩個日期之間提取記錄ios swift
let date = NSDate()
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy'-'MM'-'dd HH':'mm':'ss"
println(date) // prints 2015-09-26 05:22:41 +0000
myreport.setValue(date, forKey: "date")
而下面是我的代碼使用來獲取兩個日期之間的記錄NSPredicate:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let startDate:NSDate = dateFormatter.dateFromString(fromdate)!
let endDate:NSDate = dateFormatter.dateFromString(todate)!
println(fromdate) // prints 2015-09-22
println(todate) // prints 2015-09-29
println(startDate) // prints 2015-09-21 20:00:00 +0000
println(endDate) // prints 2015-09-28 20:00:00 +0000
let predicate1 = NSPredicate(format: "%@ >= date AND %@ <= date", argumentArray: [startDate, endDate])
let predicate = NSCompoundPredicate(type: NSCompoundPredicateType.OrPredicateType, subpredicates: [predicate1])
// Set the predicate on the fetch request
request.predicate = predicate
request.sortDescriptors = [NSSortDescriptor(key: "report_id", ascending: false)]
var results : NSArray = context.executeFetchRequest(request, error: nil)!
注:
1)我沒有fromdate並在此格式是這種格式2015-09-25(as字符串)
2)我的日期屬性的核心數據中的數據類型是NSDate
3)我能夠存儲並當我運行上面的代碼林沒有得到任何錯誤,但代碼不被兩個日期之間的搜索記錄獲取從核心數據成功
的日期。我的意思是我得到空結果數組。
任何一個PLZ可以告訴我什麼即時做錯在這裏。 如果還需要更多信息,請通知我。提前致謝!
我認爲這可以幫助你http://stackoverflow.com/questions/15831600/core-data-predicate-date-comparison –