0

iOS7 では、画像をドキュメント ディレクトリに書き込み、問題なくアクセスできます。IOs8 では、imagesdata をドキュメント ディレクトリに書き込んでアクセスできます。シミュレーターでアプリを実行するたびに、イメージ フォルダーの場所が変わります。多くのスタック オーバーフローに関する質問と Apple のテクニカル ノート (リンク: https://developer.apple.com/library/ios/technotes/tn2406/_index. html ) しかし、解決策がありませんでした。実際には、画像ファイルのパスを sqlite データベースに保存しています。

どんな助けでも感謝します。

4

1 に答える 1

1

完全なパスを保存しているようです。

IOS 8 では、Apple はディレクトリ構造を変更しました。Apple はドキュメント ディレクトリ内のフォルダを内部的に拡張しました (つまり、/developer/data/いくつかの乱数シーケンスのようなものです)。ディレクトリ フォルダはビルドごとに変更され続けます。SQLite に完全なパスを保存すると、ドキュメント ディレクトリの場所が変更されたため、その場所にファイルが見つかりません。

解決策は、完全なパスを保存するのではなく、ドキュメント ディレクトリからデータベースへのパスを保存することです。画像にアクセスするときは、現在のアプリケーション ドキュメント ディレクトリの前にプレフィックスを付けるだけで、アプリ ディレクトリから画像にアクセスできます。

例:

//Storing Images

NSString *imagePathString = [NSString stringWithFormat:@“/%@/%@.png”,@“Your Folder name”,@“image name”];

//Store this image path String to database

//Retrieving Images

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *filePath = [documentsPath stringByAppendingPathComponent:imagePathString];

//This is the path for your images
于 2014-11-13T09:50:42.833 に答える