Если вы перетащите свою базу данных в структуру вашего проекта XCode с «копированием элементов, если это необходимо» и ваша цель выбрана, ваша база данных будет расположена здесь:
let databaseInMainBundleURL = Bundle.main.resourceURL?.appendingPathComponent("Wanderer.db")
Если вы просто хотите прочитать данные, это будет хорошо, потому что основной пакет только для чтения.
Если вы хотите что-то сохранить в своей базе данных, вам нужно скопировать базу данных в каталог документов.
Вы можете использовать эту функцию, чтобы проверить, существует ли ваша база данных в каталоге документов, и скопировать, если необходимо.
func copyDatabaseIfNeeded(_ database: String) {
let fileManager = FileManager.default
let documentsUrl = fileManager.urls(for: .documentDirectory, in: .userDomainMask)
guard documentsUrl.count != 0 else {
return
}
let finalDatabaseURL = documentsUrl.first!.appendingPathComponent("\(database).db")
if !( (try? finalDatabaseURL.checkResourceIsReachable()) ?? false) {
print("DB does not exist in documents folder")
let databaseInMainBundleURL = Bundle.main.resourceURL?.appendingPathComponent("\(database).db")
do {
try fileManager.copyItem(atPath: (databaseInMainBundleURL?.path)!, toPath: finalDatabaseURL.path)
} catch let error as NSError {
print("Couldn't copy file to final location! Error:\(error.description)")
}
} else {
print("Database file found at path: \(finalDatabaseURL.path)")
}
}
и использовать с:
copyDatabaseIfNeeded("Wanderer")
После этого вы сможете использовать функцию populatePickerView
.