Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将PHAsset获取结果限制为仅3个资产_Ios_Photokit_Phasset_Phfetchoptions - Fatal编程技术网

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

Ios 将PHAsset获取结果限制为仅3个资产,ios,photokit,phasset,phfetchoptions,Ios,Photokit,Phasset,Phfetchoptions,我需要取三张按拍摄日期排序的照片-最近一张是最近一张。我目前的做法是获取所有照片资产,然后在适当的索引(0、1、2)处获取资产。虽然这是可行的,但我很好奇,当我只对前三名感兴趣时,是否有更有效的方法来做到这一点。文档解释了获取不会返回所有的图像数据——只返回元数据,但我仍然不需要获取所有的元数据。是否有phfetch选项可用于限制提取,或NSPredicate,或者无需担心 var assetsFetchResults = PHAsset.fetchAssetsWithMediaType(.Im

我需要取三张按拍摄日期排序的照片-最近一张是最近一张。我目前的做法是获取所有照片资产,然后在适当的索引(0、1、2)处获取资产。虽然这是可行的,但我很好奇,当我只对前三名感兴趣时,是否有更有效的方法来做到这一点。文档解释了获取不会返回所有的图像数据——只返回元数据,但我仍然不需要获取所有的元数据。是否有
phfetch选项
可用于限制提取,或
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 

因此,使用iOS9,您可以设置PHFetchOptions设置以限制获取的数量。例如:

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

不过,我也在寻找一种在iOS 8设备上实现这一点的方法,因为目前我们还必须同时支持iOS 8和iOS 9,所以在iOS 9上,您可以设置PHFetchOptions设置以限制获取的数量。例如:

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

不过,我也在寻找一种在iOS 8设备上实现这一点的方法,因为目前我们仍然必须同时支持iOS 8和iOS 9

您可以使用
FetchKeyAssetAssetCollection:options:
来获取一些关键照片,而不是
FetchAssetAssetCollection:options:options:
这在特定于应用程序的用户情况下不起作用库。@jarora它在iOS 8.4.1中为我工作,在由第三方应用程序创建的相册中您可以使用
FetchKeyAssetAssetCollection:options:
来获取一些关键照片,而不是
FetchAssetAssetCollection:options:options:
这在特定于应用程序的用户库中不起作用。@jarora它在iOS 8.4.1中为我工作由第三方应用程序创建的相册