2009-08-19 8 views
0

Ich verfolge das Beispiel 'SQLiteBooks', um zu verstehen, wie man mit sqlite3 für das iPhone arbeitet und frage mich, ob die Verbindung zur Datenbank sofort geschlossen werden sollte Abfrage und erneut geöffnet jedes Mal, wenn Sie mit der db sprechen müssen oder sollte die Verbindung zu Beginn der App offen bleiben und auf "appWillTerminate" geschlossen werden? Welche Kosten entstehen, wenn die db-Verbindung in einer App mehrmals wieder geöffnet wird?sqlite3-Verbindung und während der Laufzeit der App daran festzuhalten

Außerdem zeigt das Beispiel den Verweis auf sqlite3 Objekt (alias "Datenbank") herumgereicht wird aber ohne Referenzzählung - ist das ein gutes Muster zu folgen?

+0

Sofern Sie nicht auf OS 2.x abzielen, gibt es sehr wenige Gründe, Core Data nicht zu verwenden. Es wird das Verbindungsmanagement effizient handhaben und ist hoch optimiert, um Speicher und Energie zu sparen. – bbum

Antwort

0

Die Antwort hängt hauptsächlich von der Art der Anwendung ab, die Sie erstellen. Wenn Sie nur gelegentlich auf die Datenbank zugreifen, ist es in Ordnung, nach Bedarf zu öffnen/schließen, aber wenn die App häufig die Datenbank verwendet, sagen Sie, weil Ihr Anwendungsinhalt vollständig datenbankgesteuert ist, sollten Sie es wirklich tun Öffnen Sie die DB-Verbindung beim Start der App und schließen Sie sie beim Beenden.

In meiner letzten Anwendung begann ich die DB-Verbindung als Zeiger bei Bedarf zu übergeben und später änderte meine Architektur, so dass die Klasse, die ursprünglich die DB, eine Zusammensetzung von AppDelegate, war auch die Klasse, um alle Abfragen zu behandeln und Antworten von der DB. Arbeitete gut und ist leicht zu pflegen, für mich ist das gleich Gewinn.

Verwandte Themen