メインバンドルからドキュメントディレクトリに.txtファイルをコピーするこのコードがあります。これはシミュレーターでは機能しますが、デバイスでは機能しません。ドキュメントディレクトリのtxtファイルを削除し、アプリを再度実行して、シミュレーターで動作することを確認します。デバイスでアプリを実行すると、copyItemAtPath が失敗しました。これが私のコードです。
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath= [documentsDirectory stringByAppendingPathComponent:@"zipFileName.txt"];
success = [fileManager fileExistsAtPath:writableDBPath];
if (success)
{
return;
}
// The writable database does not exist, so copy the default to the appropriate location.
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"zipFileName.txt"];
success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!success) {
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
もう一度クリーニングとビルドを試みましたが、電話を再起動しても何も機能しません。
エラー: 2012-05-08 16:13:19.487 balita[162:707] * -[ViewController currentJsonFile] でのアサーションの失敗、/Users/diffy/Documents/balita/balita/ViewController.m:144 2012-05-08 16 :13:19.496 バリタ[162:707]キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。理由: '書き込み可能なデータベース ファイルを作成できませんでした。(ココア エラー 260)'.' * * 最初のスロー コール スタック: