J'ai récemment commencé un projet iOS et j'ai besoin de travailler avec une base de données autonome qui sera téléchargée à partir d'Internet quand il y aura des mises à jour. C'est mon premier projet iOS, alors j'essaie de faire fonctionner les fonctionnalités avant de concevoir le mécanisme de téléchargement.Comment travailler avec une base de données SQLite existante dans iOS?
J'ai sélectionné l'encapsuleur SQLite SWLite.swift
(https://github.com/stephencelis/SQLite.swift) et mes requêtes et vues de table sont prêtes à être exécutées. Mais je ne peux pas me connecter à la base de données. J'ai essayé à peu près toutes les autres questions/réponses ici avec absolument aucun succès.
Par exemple, j'ai laissé tomber la base de données SQLite dans le Assets.xcassets
et essayé let path = Bundle.main.path(forResource: "myDb", ofType: "db")!
et les accidents d'applications (que je suis de retour nil
- sans doute parce que le chemin n'a pas pu être localisé). De même, j'ai essayé ce que d'autres ont suggéré, y compris la création d'un dossier sur mon Mac, en y déposant le fichier, en ajoutant .bundle
au nom du dossier, et en déposant cela dans les Assets ... encore, nil
.
Quelqu'un pourrait-il nous conseiller? J'ai regardé les Apple Docs et je n'ai pas vraiment trouvé ce que je cherchais - encore une fois, c'est ma première fois, alors peut-être que je me trompe.
@ The48Percent dbPath est chemin de format de chaîne de votre fichier SQLite sous le dossier de documents. Vous pouvez utiliser votre bibliothèque SQLite pour lire le fichier à partir de là. –
Pourriez-vous donner un exemple de ce que 'dbPath' devrait être? App se bloque à l'instruction try avec 'erreur fatale: trouvé de manière inattendue nil tout en déballant une valeur facultative». Le code était un mélange de ce que vous aviez suggéré: 'essayer fileManager.copyItem (atPath: path !, toPath:" myDb.sqlite ")' – The48Percent
@ The48Percent Utilisez le 'dbPath' dans mon deuxième exemple. –