Мне нужно инициализировать переменную для подключения к базе данных SQLite в Swift. Я использую SQLite.swift библиотеку и необходимо подключиться к базе данных с этой строкой:Как объявить переменную подключения к базе данных глобально в Swift
let db = try Connection("path/to/db.sqlite3")
Однако эта линия сама по себе не будет работать, потому что она должна быть окружена попытка/поймать блок. Try/уловах блоки не будут работать, если они не определены в методах или функций, так что теперь мы имеем
public func connectToDB() {
do {
let path = NSSearchPathForDirectoriesInDomains(
.DocumentDirectory, .UserDomainMask, true
).first!
let db = try Connection("\(path)/db.sqlite3")
}
catch {
print("error connecting to database")
}
}
Однако это не позволяет мне получить доступ к переменной из других методов в том же файле, что и Мне нужно сделать. Объявления Global let также требуют инициализации, поэтому это означает, что он не может быть установлен глобально. Как я могу получить доступ к этому объекту из других методов в классе?
Прочитайте [это] (https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html). Особенно детали о 'scope' –
В качестве альтернативы этому; создать объект менеджера баз данных и передать ссылку на него вокруг вашего приложения. Вы обнаружите, что это намного легче, когда дело доходит до тестирования вашего приложения. – Abizern
Хорошо, я сделаю это. Спасибо! –