1

アセット ライブラリから画像を読み取り、画像の GPS データを変更してアセット ライブラリに書き戻すアプリを作成しようとしています。「アセットの列挙」メソッドを使用して、アセットを mutableArray に保存します。さまざまな手順を実行する方法に関する詳細のほとんどは、このフォーラムを検索して入手しました。ありがとう!

「writeimagedatatosavedphotosalbum」メソッドを使用して最初の「asset」を書き込むと、アセットの URL に関連付けられた mutableArray のすべての要素が null になることがわかりました。さらに、イメージを書き戻しても元のイメージが置き換えられるのではなく、イメージの 2 番目のインスタンスが作成されることに気付きました。

他の人が質問した場合に備えて、これらの結果を伝えようと思いました. もちろん、他の方のコメントや感想などもお待ちしております。

このフォーラムは私に素晴らしい情報を提供してくれました。再度、感謝します。

4

2 に答える 2

1

ALAssetオブジェクトは、ALAssetsLibrary オブジェクトが存在している間だけ有効ですALAssetを取得するときに完了ブロックで必要なすべてを実行するか、インスタンス変数にALAssetsLibraryを格納して、 ARCが割り当てを解除しないようにする必要があります。

于 2013-02-07T01:58:31.187 に答える
0

ALAssetは基本的に、複数のスレッドからアクセスできるプロパティを持つことができる Core Data オブジェクトですが、ALAsset が ALAssetsLibrary なしでは意味をなさないのと同様に、NSManagedObjectまたはNSManagedObjectサブクラスは、親NSManagedObjectContextなしでは意味がありません。

NSManagedObjectContextAppDelegateに格納するのが一般的です。その機能をラッパー/シングルトンに抽象化していますが、アプリのライフサイクル全体でNSManagedObjectContextへの参照が保持されています。同じロジックをALAssetsLibraryに適用すると、すべてが期待どおりに機能します。

于 2014-05-28T01:51:18.363 に答える