私はアプリケーションストアにコアデータを使用して多くのデータを保持するアプリを持っています。 例外は画像を保存することです。サブディレクトリにイメージをDocumentsディレクトリに保存し、そのイメージへのNSURL参照をコアデータストアの適切なオブジェクト属性に格納します。アプリアップデート、NSURL、ドキュメントディレクトリ
更新がアプリストアに送られたとき、以前のバージョンのアプリに保存されている参照を使用して、それらの画像が見つからないため表示されないことに気付きました。 私は、開発用デバイスをテスト用に使用しているので、devアプリケーションが使用するアプリケーションディレクトリ内のディレクトリがApp Storeが作成/使用しているディレクトリと異なるため、この問題が伝播するという疑いがあります。私は、アプリケーション内のアプリケーションのApp Storeディレクトリと、Xcodeのバージョンをデバッグする際に作成されたアプリケーションストアディレクトリの違いに気付きました。 したがって、コアデータに格納されているURLは、間違ったアプリケーションフォルダを指しています。 これは、以前のバージョンのアプリケーションをダウンロードできないため、デバッグするのが難しいです。新しいバージョンが店舗にリリースされた後です。
私はいくつかの質問があります。同じアプリケーションのバージョンをダウンロードしているユーザーが同じで、開発以外のデバイスでは問題にならないアプリケーションサブディレクトリを保証できますか?
これらのリソースの場所を表す相対イメージのURLまたは文字列を格納する必要がありますか、または絶対URLとなるものを格納するのに問題はありませんか?あなたは、ファイルへの参照を格納するための相対URLを使用する必要があります
NSString *appDocumentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
ありがとうございました!それはちょうど私が知る必要があったものです! – flizit
iTunesがアップデートをインストールしているときに、新しいアプリケーションディレクトリが作成されたことがわかりませんでした。絶対パスを無効にしてシンボリックリンクを使用することになりました。したがって、この動作に注意してくださいiOSの開発者! :) –
そのリンクは壊れています。試してください:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTips/PerformanceTips.html –