データベースに問題があります。何らかの理由で、データベースが開かれる前に閉じられているように見えます。オブジェクトがデータベースで初期化されたかどうかを知る正しい方法は何ですか?
データベースが開かれていない場合は、次の文を使用しています。if(!database)then break;
*データベースが開かれていないときにデータベースがnil(database = nil)に設定されている場合。
正しい方法でやっていますか?または、私のコードにいくつかの他のエラーがありますか?
は、ここに私のコードです:
-(BOOL) loadDB: (NSString*) dbPath {
//Database was opened before
if (database) {
sqlite3_close(database);
database = nil;
}
//Opening database
if (sqlite3_open([dbPath UTF8String], &database) != SQLITE_OK)
{
database = nil;
return FALSE;
}
return TRUE;
}
コードが複数回呼び出されていると、いくつかの時点でそれが例外をスローします。なぜこれが起こるのでしょうか?
デバッガを使用して問題の発生場所を確認すると、次のように表示されます。sqlite3_close(database);
ありがとうございます。
は、このオブジェクトの最初のインスタンス生成でデータベースをnilに設定していますか?コードスニペットを使用しているので、データベースにアクセスできる他の場所の数を確認するのは難しいです。 – KevinDTimm