2011-10-29 3 views
4

アセットを特定のアルバム(ALAssetsGroup)に保存するためにAssetsLibraryフレームワークを使用しています。ALAssetsGroupが無効になる

私はALAssetsGroup(私が資産を保存したいアルバムのために)非常に頻繁に使用しているので、私はそれを保持することが賢明だと思ったので、グループを(非同期に)繰り返す必要はありません私がそれを必要とするたびに。

アルバムをすべて取得/作成すると、すべてが正しく表示されますが(valueForProperty:)、グループはしばらくして無効になり、そのプロパティはすべてnilを返します。また、addAsset:は動作しないので、アルバムを再度検索する必要があります(今回はURLで検索されますが、まだ非同期です)。

これを回避する方法はありますか(ALAssetsGroupを有効にしておきます)?

これはiOS 5で発生しており、ライブラリ(ALAssetsLibrary)も保持されています。 私はgroup自分自身をリセットしないようにセッターを使用しています。

答えて

4

ALAssetsLibraryのALAssetsLibraryChangedNotificationのオブザーバを追加し、キャッシュされたAL *オブジェクトの再クエリを受け取る必要があります。これは、販売されたAL *オブジェクトが無効になる直前に掲載されます。

+0

ありがとうございました。同じような問題があったので、変更が発生するたびにすべてのアセットをリロードする必要があることを思い出しました。うまくいけば、彼らは将来的により良いシステムを作り出すだろう。 –

+0

WOW。ワオ。ワオ。この答えは、このような問題の頭痛から私を救った。 groupFromURL関数から返されたグループが突然すべて無効になると、複数の写真をループ内で資産ライブラリに保存しようとしていました。これは無駄ではなく、OPの記述どおりにすべてのプロパティを失うだけでした。ドキュメントで、これが完了ブロックに渡されるオブジェクトに起こることを示す何かを見たことはありませんでした。ありがとうございました!!!! – ozz

+0

は非同期通知ではありませんか?したがって、通知を処理する前にAL *オブジェクトを使用することはできませんでしたか? – user102008

関連する問題