CoreData有条件地使用NSPredicate(swift)获取NSDate
基本上我有一个名为TimeLoc的实体,它有三个属性:时间,经度和纬度。 它们的types分别是Date,Double和Double。 当我尝试使用属性时间上的filter发出请求时,我卡住了。
这是我的代码:
... var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate) var context: NSManagedObjectContext = self.managedObjectContext! var request = NSFetchRequest(entityName: "TimeLoc") var endTime = NSDate() var startTime = NSDate(timeIntervalSinceNow: -65) let predicate = NSPredicate(format: "time>= \(startTime) AND time<= \(endTime)") request.predicate = predicate var results: NSArray = context.executeFetchRequest(request, error: nil)! ...
我得到了以下错误:“无法parsing格式string”时间> = 2015-07-14 03:24:03 +0000 AND时间<= 2015-07-14 03:25:08 +0000“'
我应该如何解决这个问题? 我GOOGLE了一下,但所有的解决scheme,我发现在Objective-C。 如果有人可以在Swift中回答我,那将会很棒。
编辑:作为V-Xtremebuild议,在这个问题的答案可以findGlauco Neves的答案
我想你是以NSDate格式发送参数给谓词:
let predicate = NSPredicate(format: "time>= \(startTime) AND time<= \(endTime)")
这里你的startTime和endTime是NSDatetypes的。 尝试将其转换为string格式并将其传递给谓词。 它应该工作。
参考: NSPredicate:按NSDate属性过滤对象
- 删除Core Data中的第一个对象(Swift)
- Swift与Web服务器的核心数据同步
- 如何使用可查询数组属性创build核心数据条目?
- 请求成员tableView不是结构或联合
- 具有核心数据的表视图的奇怪行为
- 核心数据和自反实体关系(一对一或多对多)
- xcodebuild:cdtool无法编译:DataModelCompile /path/to/coredatamodel.xcdatamodeld dyld:找不到符号:_OBJC_CLASS _ $ _ OS_object
- 核心数据对象的生命周期和编译器优化
- 在创build新对象时查询特定属性的核心数据,如果存在,则返回该对象;如果不存在,则创build一个新的对象