Von der offiziellen FMDB Dokumentation:
Eröffnung
Bevor Sie mit der Datenbank in Wechselwirkung treten kann, muss es geöffnet werden. Das Öffnen schlägt fehl, wenn nicht genügend Ressourcen oder Berechtigungen zum Öffnen und/oder Erstellen der Datenbank vorhanden sind.
if (![db open]) {
[db release];
return;
}
Closing
Wenn Sie fertig sind Abfragen und Updates auf der Datenbank ausgeführt wird, Sie sollten die FMDatabase Verbindung schließen, so dass SQLite alle Ressourcen verzichten wird es im Laufe ihres Betriebs erworben hat .
[db close];
Also, jedes Mal, wenn die Datenbank abfragen, sollten Sie ein Paar open
und close
Anrufe auf Ihrer Datenbank haben.
Kurz gesagt, öffnen Sie eine DB-Verbindung, wenn Sie Dinge aus der Datenbank benötigen, und schließen Sie sie, wenn Sie die Datenbank nicht mehr benötigen.
Link zur Dokumentation: https://github.com/ccgus/fmdb
also was sind die Nachteile, wenn ich Datenbank mit im gesamten Lebenszyklus der iOS-Anwendung nicht schließe? – Nikh1414
'SQLite wird alle Ressourcen freigeben, die es im Laufe seiner Operation erworben hat. ', Aus der Dokumentation, wenn Sie die Verbindung nicht schließen, werden die von SQLite erworbenen Ressourcen nicht freigegeben und Ihre Anwendung wird Speicherprobleme haben. –
Wenn Sie jedoch viele Abfragen ausführen, sollten Sie die Datenbank lieber offen halten. Es gibt einen Leistungseinbruch, wenn Sie eine Datenbank öffnen, und ehrlich gesagt, die Ressourcen, die sqlite in Anspruch nimmt, sind nicht sehr viel. Halte es einfach offen. – ccgus