NSPredicate swift2 的最长时间
NSPredicate Maximum time with swift2
我正在使用 coredata,我想在 coredata 中找到最大时间。
我该怎么写?
let predicate = NSPredicate(format: "contentDate = '???' ", "")
fetchRequest.predicate = predicate
要找到最大值,排序并询问第一项比尝试创建谓词更有意义。
如果容器对象不重要,您还可以查看使用 @max 自行取回值的表达式。
正如 Wain 所说,要找到最大值,您必须定义 SortDescriptor
然后 Predicate
:
let sortByTimeDescriptor = NSSortDescriptor(key: "time", ascending: false)
fetchRequest.sortDescriptors = [sortByTimeDescriptor]
您只对一个(最大)值感兴趣,因此出于性能原因设置提取限制也是一种很好的做法:
fetchRequest.fetchLimit = 1
然后执行请求并从结果数组中获取第一个对象:
let results = managedObjectContext.executeFetchRequest(fetchRequest)
let maxTimeEntity = results.first
请注意 executeFetchRequest
可能会抛出错误,您必须以某种方式处理它。
我正在使用 coredata,我想在 coredata 中找到最大时间。 我该怎么写?
let predicate = NSPredicate(format: "contentDate = '???' ", "")
fetchRequest.predicate = predicate
要找到最大值,排序并询问第一项比尝试创建谓词更有意义。
如果容器对象不重要,您还可以查看使用 @max 自行取回值的表达式。
正如 Wain 所说,要找到最大值,您必须定义 SortDescriptor
然后 Predicate
:
let sortByTimeDescriptor = NSSortDescriptor(key: "time", ascending: false)
fetchRequest.sortDescriptors = [sortByTimeDescriptor]
您只对一个(最大)值感兴趣,因此出于性能原因设置提取限制也是一种很好的做法:
fetchRequest.fetchLimit = 1
然后执行请求并从结果数组中获取第一个对象:
let results = managedObjectContext.executeFetchRequest(fetchRequest)
let maxTimeEntity = results.first
请注意 executeFetchRequest
可能会抛出错误,您必须以某种方式处理它。