2016-01-05 5 views
1

У меня был предыдущий вопрос здесь о местонахождении базы данных. What different between store database in different locations in iOS?iOS: Как скопировать предварительно загруженную базу данных в первое запущенное приложение с SQLite.swift в место для записи?

Я смущен в копировании предварительно загруженной базы данных в доступное для записи место.

Теперь, каждый раз, когда я запускаю и создаю свое приложение, база данных, используемая в процессе использования, будет заменена предварительно загруженным db.

И в будущем, если я обновляю версию своего приложения, как я могу предотвратить замену базы данных?

ответ

2

Как предотвратить замену базы данных?

Проверьте место назначения, прежде чем копировать базу данных. Если там уже есть файл, не делайте копию. Вы можете использовать -[NSFileManager fileExistsAtPath:] для проверки существующего файла.

+0

И как скопировать db из ресурсов копирования Bundle в DocumentDirectory? – TomSawyer

+0

Вы не копируете «Ресурсы копирования Bundle» ... это шаг построения. У вас должен быть файл базы данных, указанный в Ресурсах копирования Bundle - вот как он попадает в приложение при его создании. Когда приложение запускается, вы проверяете, существует ли файл, и если он не использует метод '-copyItemAtPath: toPath:' NSFileManager' для копирования файла в каталог документов. – Caleb

+0

Большое спасибо. Я работаю быстро. Вот мой код: 'сделать { попробовать fileManager.copyItemAtPath (orgpath !, toPath: DBPATH как строка) ConnectToDB() } поймать пусть ошибки в NSError { печать (ошибка) }', но я боюсь, что ' Метод ConnectToDB() 'будет вызван до завершения' copyItemAtPath'? – TomSawyer

 Смежные вопросы

  • Нет связанных вопросов^_^