Die meisten SQLite-Beispiele, die ich gefunden habe, sprechen darüber, eine DB-Datei zuerst über die Befehlszeile zu erstellen und diese dann zu Ihrer App hinzuzufügen. Für mein Projekt möchte ich in der Lage sein, meine Datenbank beim ersten Start in der App zu erstellen und sie dann in einer db-Datei in der Sandbox des Benutzers zu speichern. Gibt es eine Möglichkeit, das zu tun?iPhone erstellen SQLite-Datenbank zur Laufzeit?
Antwort
Sie können (wie üblich) nach der Datei suchen, wenn die Anwendung gestartet wird. Wenn die Datei nicht existiert, statt das Kopieren der bereits erstellten Datei einfach wie folgt:
- Öffnen Sie die Datei wie gewohnt mit
sqlite3_open()
- Führen Sie Ihre Kreation Befehle (dh erstellen Sie Ihre Tabellen, Views, etc.)
Das ist wirklich alles da ist es.
Ich denke, ich werde den expandierenden Schrei wiederholen, dass, wenn Sie etwas mit einer Datenbank machen wollen, sollten Sie CoreData betrachten. Es verwendet SQLLite darunter und ist einfacher einzurichten, und viel einfacher später zu migrieren, wenn Sie ein paar neue Dinge in der DB finden müssen!
Core Data bietet eine einfache Möglichkeit, dies zu verwalten - es wird nach dem Start eine Datenbankdatei suchen, wenn keine existiert, wird es eine für Sie erstellen. Es erstellt automatisch das Modell für Sie basierend auf einem Diagramm, das Sie in xCode erstellen können.
Wenn Sie in Zukunft Benutzer mit älteren Datenbanken aktualisieren, vereinfacht dies auch die Datenmigration.
Sie greifen auch auf die Daten mit generierten Datenobjekten zu. Core Data verwendet auch Lazy Loading für die Objekte, die erstellt werden, was viel besser ist als manuell
Weitere Informationen finden Sie im Demo-Projekt Locations und lesen Sie Core Data in der Dokumentation.
oh warum habe ich das nicht einfach versucht? Ich dachte, es wäre komplizierter. ;) – Cruinh