斯威夫特:如何设置两个日期之间的照片范围?
Posted
技术标签:
【中文标题】斯威夫特:如何设置两个日期之间的照片范围?【英文标题】:Swift: how to set range of photos between 2 dates? 【发布时间】:2019-07-19 11:03:30 【问题描述】:我想从照片库中获取 1 月 1 日至 5 月 1 日期间的照片 我该怎么做呢
我的代码适用于所有照片:
let options = PHFetchOptions()
options.sortDescriptors = [ NSSortDescriptor(key: "creationDate", ascending: true) ]
options.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.image.rawValue)
let assets = PHAsset.fetchAssets(with: options)
【问题讨论】:
【参考方案1】:有一个creationDate 属性,所以你可以扩展你的谓词来过滤日期:
(creationDate >= %@) AND (creationDate <= %@)
所以你的谓词应该如下所示
options.predicate = NSPredicate(
format: "mediaType = %d AND (creationDate >= %@) AND (creationDate <= %@)",
PHAssetMediaType.image.rawValue,
fromDate as NSDate,
toDate as NSDate
)
【讨论】:
BETWEEN
适用于 NSPredicate
查询。
是的,同意。只是尝试使用更明显的方式,因为尚不清楚BETWEEN
中包含的内容。另一方面,您有特定的运算符>=
、>
等
参数类型“日期”不符合预期类型“CVarArg”@rkyr
是的,因为它是 NSPredicate,所以您需要将日期转换为 NSDate
。将在几秒钟内更新答案以上是关于斯威夫特:如何设置两个日期之间的照片范围?的主要内容,如果未能解决你的问题,请参考以下文章