設定:
PHPickerViewController
ユーザーが写真を選択できるようにするために使用しています。PHPickerViewControllerDelegate
プロトコル メソッドを実装しましたpicker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult])
。itemProvider
結果配列から取得しています。
問題:
選択した画像のデータにアクセスする必要があります。NSItemProvider
呼び出された にはメソッドがありloadDataRepresentation()
、型識別子文字列を取り、その完了ブロックで画像データを返す必要があります。
このメソッドを呼び出すと、データが返される場合と返されない場合があります。各プロバイダーの複数の登録済みタイプ識別子に対してこれを試しましたが、同じことがわかりました。JPEG データを返すが HEIF を返さない場合もあれば、HEIF のみを返す場合もあれば、データをまったく返さない場合もあります。これは、データを読み込もうとするたびに、同じ写真が同じ結果を示すという点で一貫しています。
データがない場合、次のエラーが表示されます。
Upload preparation for claim D8C281B7-CCCE-4299-95BF-9355FCF340E4 completed with error: Error Domain=NSCocoaErrorDomain Code=260 "The file “7AB1AB3F-7643-45C1-9DD9-5F5642965C3A.jpeg” couldn’t be opened because there is no such file."
データをロードする前に、写真に対して何かする必要がありますか? 多分私はここでステップを逃していますか?これは、iPhone XR で直接撮影した写真で発生します。私は iCloud Photos を使用していません。すべての写真はデバイスにあります。