1

iOSアプリで読み取る必要があるsqliteファイルがありますが、xcodeでアプリにコピーするとエラーが発生します... sqlファイルをプロジェクトの「サポートファイル」フォルダーに入れました。コードは次のとおりです。

-(NSString *)filePath {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask,
                                                         YES);

    return [[paths objectAtIndex:0] stringByAppendingPathComponent:
                                                         @"LocationsApp.sql"];
}

-(void)createEditableCopyOfDatabaseIfNeeded {
    BOOL success;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSError *error;
    NSString *writableDBPath = [self filePath];
    success = [fileManager fileExistsAtPath:writableDBPath];

    if (success)
    {
        return;
    }

    NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"LocationsApp.sql"];
    success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
    if (!success)
    {
        NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
    }
}

エラーは次のとおりです。

2013-10-03 13:21:35.282 LaGuida[1872:60b] * -[FirstViewController createEditableCopyOfDatabaseIfNeeded] でのアサーションの失敗、/Volumes/Lavoro/AppleDev/LaGuida/LaGuida/FirstViewController.m:87 2013-10-03 13:21 :35.284 ラギダ[1872:60b]キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。理由: '書き込み可能なデータベース ファイルを作成できませんでした。(ココア エラー 260)'.' * * First throw call stack: (0x2e4f8e8b 0x387f36c7 0x2e4f8d5d 0x2eea123f 0x6b201 0x6abad 0x30c8297d 0x30c828f9 0x30daa7cf 0x30daa663 0x30daa56f 0x30c8fed5 0x30dadeb5 0x30dad333 0x30c98907 0x30c8a5a7 0x30c89d5f 0x30c89bd3 0x30c89701 0x30c86cc5 0x30cf219d 0x30ceef75 0x30ce94b9 0x30c83be7 0x30c82edd 0x30ce8ca1 0x3316476d 0x33164357 0x2e4c377f 0x2e4c371b 0x2e4c1ee7 0x2e42c541 0x2e42c323 0x30ce7f43 0x30ce31e5 0x6bbdd 0x38cecab7) libc++abi .dylib: タイプ NSException のキャッチされない例外で終了しています

4

1 に答える 1

0

DBName を修正します

LocationsApp.sql to LocationsApp.sqlite

またはあなたのDBNameが何であれ

于 2013-10-03T12:00:54.023 に答える