2013-01-22 5 views

Antwort

5

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

+0

also was sind die Nachteile, wenn ich Datenbank mit im gesamten Lebenszyklus der iOS-Anwendung nicht schließe? – Nikh1414

+0

'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. –

+0

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

7

Es gibt keinen Grund, es zu schließen, wenn Sie das Schema nicht ändern. Also halte es offen.

+0

Es ist gut, wenn bei der App im Vordergrund mehr, dass die Zeit db offen und wenn app geht in db.close Hintergrund-Modus? – Hitarth

+1

Und wenn db geöffnet ist und es nicht lange dauern wird, wird es automatisch geschlossen? – Hitarth

Verwandte Themen