我已经创建了照片中所有缩略图图像的集合视图,为此我编写了以下代码:
var photoAssets: PHFetchResult<PHAsset> = PHFetchResult()
let allPhotosOptions = PHFetchOptions()
allPhotosOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
let allPhotosResult = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: allPhotosOptions)
photoAssets = allPhotosResult
现在我有了PhotoAssets of Array,用于获取我编写代码的每个PHAsset的缩略图:
let manager = PHImageManager.default()
let requestOptions = PHImageRequestOptions()
public var thumbnailSize = CGSize(width: 100, height: 100)
requestOptions.isSynchronous = true
requestOptions.isNetworkAccessAllowed = true
requestOptions.deliveryMode = .highQualityFormat
requestOptions.resizeMode = .exact
manager.requestImage(for: selectedAsset, targetSize: self.thumbnailSize, contentMode: PHImageContentMode.aspectFill, options: requestOptions) {
image, info in
// here I am getting the thumbnail image this code is running fine.
}
当我从UICollection视图中选择任何缩略图时,我得到索引并从 photoAssets 数组中获取PHAsset。 现在为我的PHAsset创建完整大小的图像,我写了代码:
let manager = PHImageManager.default()
let requestOptions = PHImageRequestOptions()
public var thumbnailSize = CGSize(width: 100, height: 100)
requestOptions.isSynchronous = true
requestOptions.isNetworkAccessAllowed = true
requestOptions.deliveryMode = .highQualityFormat
requestOptions.resizeMode = .exact
manager.requestImage(for: selectedAsset, targetSize: PHImageManagerMaximumSize, contentMode: PHImageContentMode.aspectFill, options: requestOptions) {
image, info in
//completion(image, info as AnyObject)
//here i'll get the full size image for requested PHasset
}
我的问题是在获取非iCloud设备的全尺寸图像时,我正在获取图像,但对于那些启用了iCould的设备,我得到 image = nil 和创建具有未知类型的图像格式是错误
答案 0 :(得分:0)
创建具有未知类型的图像格式是错误
这是xcode中的一个错误,如果选择器可以正确选择并返回图像,这意味着一切正常,只需忽略它。