次のコードを使用して、SQLite でデータベースを開き、挿入クエリを実行しています。
// Open the database and store the handle as a data member
if (sqlite3_open([databaseFile UTF8String], &databaseHandle) == SQLITE_OK)
{
const char *sqlStatement = [insertStmt cStringUsingEncoding:NSUTF8StringEncoding];
char *error;
if (sqlite3_exec(databaseHandle, sqlStatement, NULL, NULL, &error) == SQLITE_OK)
{
NSLog(@"Config table values inserted.");
registration_done = YES;
}
else
{
NSLog(@"Error: %s", error);
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
if (sqlite3_exec(databaseHandle, sqlStatement, NULL, NULL, &error) == SQLITE_OK) {
NSLog(@"Config table values inserted 2.");
registration_done = YES;
}
else {
NSLog(@"Error: %s", error);
}
}
}
else{
sqlite3_close(databaseHandle);
}
sqlite3_close(databaseHandle);
しかし、次のエラーが発生し、アプリはその後終了しています:
-[__NSCFType UTF8String]: 認識されないセレクターがインスタンス 0x15d9a0 に送信されました
Phonegap(2.1.0) を使用しているため、データベース ファイルとテーブルは /Caches/ ディレクトリに作成されます。Phonegap は、上記の Objective-C コードが呼び出される前にクエリを適切に実行します。これは、テーブルが /Caches/ ディレクトリに正常に作成されていることを意味します。