我正在尝试通过资产访问AssetCollection。当代码被执行时,Photo Framework返回nil。仅供参考:资产是用iPhone相机单击的图片,因此,它存储在“相机胶卷”下。
77AF0C78-242A-4979-8A7B-7CFF04014C54 / L0 / 001致命错误:展开一个可选值时意外发现nil
func assetCollectionForAsset(asset: PHAsset) -> PHCollection {
var assetCollection: PHAssetCollection!
print(asset.localIdentifier)
let fetchOptions = PHFetchOptions()
let collection = PHAssetCollection.fetchAssetCollectionsContainingAsset(asset, withType: PHAssetCollectionType.Album, options: fetchOptions)
//let collection = PHAssetCollection.fetchAssetCollectionsWithLocalIdentifiers([asset.localIdentifier], options: fetchOptions)
assetCollection = collection.firstObject as! PHAssetCollection
return assetCollection
}
如果我将类型更改为Moment,问题就解决了。
let collection: PHFetchResult = PHAssetCollection.fetchAssetCollectionsContainingAsset(asset, withType: PHAssetCollectionType.Moment, options: fetchOptions)
Apple文档中的常量信息说:
相册-“照片”应用中的相册。
相册可以在“照片”应用中创建,也可以通过iTunes同步显示在iOS设备上。
SmartAlbum-智能相册,其内容会动态更新。
“照片”应用程序显示内置的智能相册,以对某些类型的相关资产进行分组(请参阅资产集合子类型)。
片刻-在“照片”应用中的片刻。
“照片”应用程序会自动创建时刻,以按时间和位置对资产进行分组。
这意味着“相册”下的“相机胶卷”不是相册,而是片刻?我真的很困惑
最佳答案
相机胶卷没有收藏类型PHAssetCollectionType.Album
请尝试使用收集类型
子类型为PHAssetCollectionType.SmartAlbum
的PHAssetCollectionSubtype.SmartAlbumUserLibrary
关于swift - 如果类型设置为相册,则PHAssetCollection fetchAssetCollectionsContainingAsset返回nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32357300/