ユーザーが背景として使用できるように、一連の画像をユーザーの写真ライブラリにコピーする簡単なアプリケーションを作成しています。問題は、ユーザーがアプリケーションを複数回実行すると、重複した画像がフォト ライブラリにコピーされることです。Apple が写真ライブラリのコンテンツへのアクセスに課している制限を考えると、重複ファイルをライブラリに書き込まないようにする最も簡単な方法は何ですか?
ベン
ユーザーが背景として使用できるように、一連の画像をユーザーの写真ライブラリにコピーする簡単なアプリケーションを作成しています。問題は、ユーザーがアプリケーションを複数回実行すると、重複した画像がフォト ライブラリにコピーされることです。Apple が写真ライブラリのコンテンツへのアクセスに課している制限を考えると、重複ファイルをライブラリに書き込まないようにする最も簡単な方法は何ですか?
ベン
アプリケーションに保存された画像データは、ファイルに書き込んだり、コアデータを使用したりすることで保存できます。これにより、保存されている画像と保存されていない画像を確認できます。Y
この回答はやや遅れていますが、遅い回答は、まったく回答がないよりはましです。答えは、(少なくともパブリック API の制約内で) 写真ライブラリ (PL) で重複する画像をチェックする方法がないということです。フォト ライブラリに書き込む唯一の方法は、UIKit グローバル関数を使用することです。
void UIImageWriteToSavedPhotosAlbum (
UIImage *image,
id completionTarget,
SEL completionSelector,
void *contextInfo
);
このコードは、UIImage のインスタンスをフォト ライブラリに書き込むだけです。その 4 つのパラメーターはいずれも、画像と共に保存される可能性がある追加の識別可能なオブジェクトを表していません。また、それがラップする UIImage または CGImage も、この種の「メタデータ」用のスロットを提供しません。もちろん、いつでもサブクラス化できますが、残念ながら PL の内容を検査する方法はありません。PL は書き込み専用の永続ストアであり、その内容は、少なくとも API プログラマに関する限り、本質的に匿名です。ブラック ホールのように、フォト ライブラリには「一方通行の面」があります。