Asset経由で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
}
タイプをモーメントに変更すると、問題が発生します。
let collection: PHFetchResult = PHAssetCollection.fetchAssetCollectionsContainingAsset(asset, withType: PHAssetCollectionType.Moment, options: fetchOptions)
Apple ドキュメントの定数情報は次のように述べています。
アルバム - 写真アプリのアルバム。アルバムは、写真アプリで作成するか、iTunes 同期を介して iOS デバイスに表示できます。
SmartAlbum - コンテンツが動的に更新されるスマート アルバム。フォト アプリには、組み込みのスマート アルバムが表示され、特定の種類の関連アセットがグループ化されます (アセット コレクションのサブタイプを参照)。
瞬間 - 写真アプリの瞬間。写真アプリは、時間と場所によってアセットをグループ化する瞬間を自動的に作成します。
アルバム下のカメラロールはアルバムじゃなくて一瞬?私は本当に混乱しています。