質問: Int(attr.fileSize()) } catch { } } return fileSize } ``` そこで * 日付のようにoptionsに設定するだけでソートできるようなメソッド?は用意されているのか * ファイルサイズを同期的に取得してソートする方法はあるのか? * 上記のようなことをしなくても、他の方法でできるよ! などご教授いただけたらと思います。
回答: Photosあまり詳しくは無いですが・・・ > > 日付のようにoptionsに設定するだけでソートできるようなメソッド?は用意されているのか > > > PHAssetがファイルサイズ情報を持っていないので出来ないかと思います。 > > ファイルサイズを同期的に取得してソートする方法はあるのか? > > > あまり良い方法ではなさそうですが、`requestImageData`で直Dataをリクエストする際にオプションで同期オプションを指定することができるようです。 https://stackoverflow.com/questions/38348771/phasset-get-filesize-ios ただ、メモリや動作速度などいろんな効率が悪そうです。 (おそらくautoreleasepoolなどを仕込まないとメモリ枯渇死するのではないかと思われます。) 同期にこだわる必要がなければ、 1. 非同期でファイルサイズを取り、PHAssetとファイルサイズをタプル等で配列に溜める(`[(asset: PHAsset, filesize: Int)]`型とかで) 2. すべて取り終わったらファイルサイズを元にソートを行い、画面に反映 などとすれば良いのではないかと思いました。 余談ですが、iCloudなどで同期した画像(端末側には実データが無いもの)とかもありますので、ご注意ください。