0

iOS での AssetLibrary の使用について質問があります。実際の画像ではなく、画像へのポインターをアプリに保存することは可能ですか? プレイリストを作成したいが、実際の画像を保存したくないとしましょう。

私が尋ねている理由は、画像ピッカーを使用すると、デバイスのドキュメントディレクトリに画像を保存できることがわかりましたが、25 程度になると、デバイス (iPad 1) の速度が低下し始めるためです。画像が非常に大きい場合は縮小し、リーク測定器を何度も実行しましたが、リークはありません。次はどこに向かうのか途方にくれたので、代替案を調査したいと思いました。メモリを解放できる場所がどこにもないので。

物理的な画像を保存しないので、AssetLibrary がオプションになるかどうか知りたいです。いくつかの欠点があることは知っています(ユーザーの場所が必要であり、画像をループするときに少し遅くなる可能性があります)

これについてのご意見は大歓迎です。

4

1 に答える 1

2

25 個の画像をドキュメント ディレクトリに保存しても、25 個の非常に大きな画像すべてを同時にメモリにロードしようとしている場合を除き、デバイスの速度が低下することはありません。

アセット ライブラリ アセットへのポインターを永続的に保存することはできませんが、ALAssetRepresentation のurlプロパティから取得した URL を保存し、ALAssetsLibrary を使用assetForURL:resultBlock:failureBlock:して、対応する ALAsset を後で取得することができます。アプリがバックグラウンドにある場合でも、ユーザーがプログラムの外部からアセットを削除する可能性があることに注意してください。そのため、ALAsset にハングアップしている場合は、ALAssetsLibraryChangedNotification をリッスンしてアセットをリロードするタイミングを知る必要があります。

于 2011-03-27T15:15:21.160 に答える