-1

ユーザーからの画像を app/documents フォルダーに保存するアプリがあります。次のコードを実行して、保存するパスを決定しています。

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docs = [paths objectAtIndex:0];
    NSString *imageFilename = [[[[NSNumber alloc] initWithInteger:self.nextID] stringValue] stringByAppendingFormat:@".jpg"];
    NSString *dirPath = [docs stringByAppendingFormat:@"/Photos/"];
    imagePath = [dirPath stringByAppendingString:imageFilename];

(シミュレーターで)次のようなパスが表示されます: /var/mobile/Applications/C9C43CFD-6A5F-40CF-8BAE-20496B5A544A/Documents/Photos/1.jpg

このパスを保存して、必要なときにこの画像を表示します。

私の問題は、アプリストアで更新を送信したときに、アプリを更新した後、画像を表示できなくなったことです。私の理解では、AppStore でアプリを更新すると、Documents フォルダーは変更できません。

アプリケーションフォルダとDocumentarの間の名前が変わったのはおそらく私の理由ですが、AppStoreからアプリのバージョンを更新するときは本当ですか?

誰にもアイデアはありますか?このアプリの更新をローカルでテストする方法はありますか?

ありがとう

4

2 に答える 2

1

Documents絶対パスではなく、ディレクトリの後に相対パスを保存する必要があります。アプリのディレクトリは更新中に変更される可能性がありますが、アプリのサンドボックス内の構造は変更されません。

また、パスを構築するための少し良い方法があります。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docs = [paths objectAtIndex:0];
NSString *imageFilename = [NSString stringWithFormat:@"%d.jpg", self.nextID];
NSString *dirPath = [docs stringByAppendingPathComponent:@"Photos"];
imagePath = [dirPath stringByAppendingPathComponent:imageFilename];
于 2013-04-30T21:11:27.797 に答える