4

いくつかのテーブルで構成されるデータベースを読み取って表示する必要があるオフラインの iPhone アプリを作成しています。テーブルには 10 万を超えるエントリが含まれているため、すべてを個別に入力することはほとんど不可能です。.sqlデータベース全体のファイルをダウンロードしました。db をそのまま sqlite/Xcode にインポートして、その中のデータに簡単にアクセスできるようにするにはどうすればよいでしょうか?? 編集:データベースを使用する場合、使用されるファイル拡張子はファイルであることが.dbわかりました。とにかく.sqlファイルをファイルに変換でき.dbますか。.dbそれができる場合、ファイルをプロジェクト ディレクトリに置くだけでアクセスできますか?

4

1 に答える 1

5

.sqlite ファイルを作成し、その中にテーブルがある場合は、デスクトップからバンドル (リソース) にドラッグするように、.sqlite ファイルを xcode に追加します。次に、NSFileManager を使用して sqlite ファイルにアクセスします。メソッドを記述する必要があります。 createdatabase と initialize database の場合、また、ドキュメント フォルダー/シミュレーター フォルダーに sqlite ファイルが表示されます。

- (void)createEditableCopyOfDatabaseIfNeeded {
    NSLog(@"Checking for database file");
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSError *error;
    NSString *dbPath = [self getDBPath];
    NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"ihaikudb.sql"];
    BOOL success = [fileManager fileExistsAtPath:dbPath]; 

    NSLog(@"If needed, bundled default DB is at: %@",defaultDBPath);

    if(!success) {
        NSLog(@"Database didn't exist... Copying default from resource dir");
        success = [fileManager copyItemAtPath:defaultDBPath toPath:dbPath error:&error];

        if (!success) 
            NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
    } else {
        NSLog(@"Database must have existed at the following path: %@", dbPath);
    }
    NSLog(@"Done checking for db file");
}
于 2013-07-17T04:32:26.370 に答える