将PHAsset获取结果限制为仅3个资产

时间:2015-05-02 23:30:48

标签: ios photokit phasset phfetchoptions

我需要按拍摄日期排序拍摄三张照片 - 最近拍摄的是最近拍摄的照片。我目前这样做的方法是获取所有照片资产,然后在适当的索引(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 

1 个答案:

答案 0 :(得分:4)

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

Mockito.mock

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