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 可能会抛出错误,您必须以某种方式处理它。