【问题标题】: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)

【问题讨论】:

    标签: ios swift nspredicate photosframework


    【解决方案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 中包含的内容。另一方面,您有特定的运算符&gt;=、&gt; 等
    • 参数类型“日期”不符合预期类型“CVarArg”@rkyr
    • 是的,因为它是 NSPredicate,所以您需要将日期转换为 NSDate。将在几秒钟内更新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 2017-07-22
    • 2017-03-24
    相关资源
    最近更新 更多