1

こんにちは私はiOSでsqliteデータベースを作成しようとしています。必要なパラメータを指定してsqlite3_openメソッドを使用しますが、常にエラー14(SQLITE_CANTOPEN 14 /*データベースファイルを開くことができません*/)が発生します。

最も単純な宣言でも機能しません

NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath ]stringByAppendingPathComponent:@"data.sqlite3"];

BOOL success = [fileMgr fileExistsAtPath:dbPath];

sqlite3 *db;

if(!success)
{
    NSLog(@"Cannot locate database file '%@'.", dbPath);
}

if(!(sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK))
{
    NSLog(@"An error has occured.");
}
else{
    NSLog(@"Ok");
}

何が起こっているのかアイデアはありますか?

ありがとう。

4

2 に答える 2

4

アプリケーションバンドル内のsqliteデータベースへの書き込みアクセスを取得することはできません。代わりに、バンドル内のデータベースを「ファイル」システムの適切な場所(iCloudに関する場合)にコピーして、そこで開きます。アプリに最初にファイルシステム内のデータベースを検索させ、データベースが存在しない場合にのみコピーします。

于 2013-02-27T17:37:34.683 に答える
1

ドキュメントディレクトリを使用してデータベースファイルを保存し、sqliteを作成します...それは機能します

于 2013-09-06T18:06:59.770 に答える