メインバンドルから.dxtファイルを.dxtファイルにコピーするこのコードがあります。これはシミュレータでは動作しますが、デバイスでは動作しません。私はそれがSimulator上でドキュメントdirのtxtファイルを削除し、アプリケーションを再実行することによって動作することを確認します。デバイス上でアプリケーションを実行すると、copyItemAtPathが失敗しました。ここに私のコードです。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]);
}
私は再び清掃してビルドしようとしましたが、電話機を再起動しても何も動作しません。
ERROR:2012-05-08 16:13:19.487バリタ[162:707] *アサーション失敗 - [のViewController currentJsonFile]、/Users/diffy/Documents/balita/balita/ViewController.m。 144 2012-05-08 16:13:19.496 balita [162:707] キャッチされていない例外 'NSInternalInconsistencyException'のためにアプリケーションを終了しています。理由: 'メッセージで書き込み可能なデータベースファイルを作成できませんでした。'操作を完了できませんでした。 (ココアのエラー260)。 ' * *まずスローコールスタック:
[error localizedDescription]からどのようなエラーメッセージがありますか? – Vin
質問を更新し、エラーメッセージを添付しました。 – Diffy
デバイスとシミュレータの間に大文字と小文字の区別があります。デバイスは大文字と小文字を区別 – user523234