1

我需要获取按拍摄日期排序的三张照片——最新的是最近拍摄的。我目前这样做的方式是获取所有照片资产,然后在适当的索引(0、1、2)处获取资产。虽然这可行,但我很好奇当我只对前三名感兴趣时是否有更有效的方法来做到这一点。文档解释 fetch 不会返回所有图像数据 - 仅返回元数据,但我仍然不需要获取所有元数据。是否有一个PHFetchOption我可以用来限制获取,或者一个NSPredicate,或者没有必要担心?

var assetsFetchResults = PHAsset.fetchAssetsWithMediaType(.Image, options: nil)
let imageManager = PHCachingImageManager()

if assetsFetchResults?.count > 0 {
    var asset = assetsFetchResults?[0] as? PHAsset
    imageManager.requestImageForAsset(asset, targetSize: targetSize, contentMode: .AspectFill, options: nil, resultHandler: ...)
}
//repeat for index 1 and 2 
4

1 回答 1

6

因此,在 iOS 9 中,您可以设置 PHFetchOptions 设置来限制您获取的数量。例如:

   let fetchOptions = PHFetchOptions()
    if #available(iOS 9.0, *) {
        fetchOptions.fetchLimit = 3
    } else {
        // Fallback on earlier versions
    }

但是我也在寻找一种在 iOS 8 设备上执行此操作的方法,因为此时我们仍然必须同时支持 iOS 8 和 9

于 2015-11-12T18:08:38.757 回答