我正在尝试通过资产访问 AssetCollection。执行代码时,照片框架返回 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 - 内容动态更新的智能相册。照片应用程序显示内置智能相册以对某些类型的相关资产进行分组(请参阅资产集合子类型)。
时刻 - 照片应用程序中的时刻。照片应用程序会自动创建时刻以按时间和位置对资产进行分组。
这意味着相册下的相机胶卷不是相册而是片刻?我真的很困惑。