FMDBラッパークラスのデータベースのオープンとクローズの操作について混乱しています。
AppDelegateクラスのapplicationDidFinishLoadingメソッドでデータベースを開き、アプリケーションが終了するまで閉じない場合、問題が発生しますか?
ありがとう。
スキーマを変更しない限り、閉じる必要はありません。だから開いたままにしてください。
公式の FMDB ドキュメントから:
オープニング
データベースを操作する前に、データベースを開く必要があります。データベースを開いたり作成したりするためのリソースまたは権限が不十分な場合、開くことができません。
if (![db open]) {
[db release];
return;
}
閉鎖
データベースでのクエリと更新の実行が終了したら、FMDatabase 接続を閉じて、SQLite が操作中に取得したリソースを解放する必要があります。
[db close];
そのため、データベースにクエリを実行するたびに、データベースに と のペアを呼び出す必要がありopen
ますclose
。
つまり、データベースからのものが必要なときに DB 接続を開き、データベースの使用が終了したら閉じます。
ドキュメントへのリンク: https://github.com/ccgus/fmdb