ドキュメントディレクトリにビデオ/イメージを保存しています。イメージがドキュメントディレクトリに保存されると、ローカルデータベースにその参照を保存します。イメージのURLをローカルデータベースに保存できると思っています。iOSデバイス用のドキュメントディレクトリパス定数ですか?
私のアプリ全体で一定ですか?
ドキュメントディレクトリにビデオ/イメージを保存しています。イメージがドキュメントディレクトリに保存されると、ローカルデータベースにその参照を保存します。イメージのURLをローカルデータベースに保存できると思っています。iOSデバイス用のドキュメントディレクトリパス定数ですか?
私のアプリ全体で一定ですか?
いいえ、定数ではありません。あなたのアプリを再インストールするか更新するたびに、ドキュメントディレクトリが変更されます。なぜなら、デバイスosにインストールされたアプリケーションがランダムなIDを持つappディレクトリを作成し、それぞれがこのランダムをインストールするとOSによって変更されるからです。
したがって、ファイル名のみを保存し、ドキュメントディレクトリのパスを使用する際に追加するなど、独自のファイルを動的に作成する必要があります。
ファイル名またはサブディレクトリ/ファイル名(サブディレクトリがある場合)をデータベースに保存し、それをNSDocumentDirectoryにのみ添付することをお勧めします。
これは、ファイルがどこにあるあなたが常に知っていることを保証します...ファイルをアップデートしても、ドキュメントディレクトリに残っている必要がありますので、
NSDocumentDirectoryが、しかし、一貫性のaccrossアップデートです...
にです一定ではない、あなたがアプリを起動するたびに違うはずだが、あなたのデータはこの新しいパスに移動されるのを観察した。ファイル名をデータベースに保存し、このファイル名をNSDocumentディレクトリに動的に追加することができます。
- (NSString *)documentsFilePath:(NSString *)fileName {
NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDir = [dirPaths firstObject];
NSString *filePath = [docsDir stringByAppendingPathComponent:fileName];
return filePath;
}
- (void)storeFile:(NSString *)fileName {
NSString *filePath = [self documentsFilePath:fileName];
// create if needed
if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
// Write your data to file system here...
}
}
- (void)deleteFile:(NSString *)fileName {
NSString *filePath = [self documentsFilePath:fileName];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
NSError *deleteErr = nil;
[[NSFileManager defaultManager] removeItemAtPath:filePath error:&deleteErr];
if (deleteErr) {
NSLog(@"Can't delete %@: %@", filePath, deleteErr);
}
}
}
nil
チェックを処理し、正確にDB
にのみファイル名を保存してください、ディレクトリを文書からの相対パスが一致しています。絶対パスは一貫していません。 – Sulthan