1

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 - コンテンツが動的に更新されるスマート アルバム。フォト アプリには、組み込みのスマート アルバムが表示され、特定の種類の関連アセットがグループ化されます (アセット コレクションのサブタイプを参照)。

瞬間 - 写真アプリの瞬間。写真アプリは、時間と場所によってアセットをグループ化する瞬間を自動的に作成します。

アルバム下のカメラロールはアルバムじゃなくて一瞬?私は本当に混乱しています。

4

1 に答える 1