2015-09-18 4 views
1

Поскольку я обновлен до Xcode 7 и скоро 2, я получаю эту ошибку:Swift 2 SQLite.swift ссылка модуля

Отсутствует типа с именем «Запрос» в модуле «SQLite» Использования необъявленного типа «базы данных '

, используя этот код:

let table:SQLite.Query 

init(db:Database){ 

    table = db["BucketType"] 
} 

Я использую swift2 ветвь SQLite.swift, но это выглядит как мой проект, он не может найти модуль ссылки SQLite.swift. Также есть импорт SQLite для каждого файла, с которым я использую SQLite.swift. Я пробовал ручную интеграцию и стручки какао, но с теми же результатами.

Он работал с Xcode 6.4.

+2

См. Комментарий здесь: https://github.com/stephencelis/SQLite.swift/issues/199#issuecomment-140889578 Также быстро просмотрите README ветви swift-2 и документацию для других обновлений. – stephencelis

+0

Спасибо, я понял. теперь у меня есть это как в вашем примере пусть _appDb = попробовать Connection (dbPath.relativePath!) но получаю эту ошибку ошибки брошенные здесь не обрабатываются –

+0

Вам нужно обернуть, что 'try' в' do'- блок 'catch'. Читайте об ошибках в Swift 2 для получения дополнительной информации. – stephencelis

ответ

2

У меня есть что-то вроде этого ...

class DBHelper { 

static let instance = DBHelper() // singleton 

var db : Connection 

init() { 
    do { 
     self.db = try Connection("\(Util.getDBPath())/db.sqlite3") 
     createTablesIfNotExists() 
    } catch { 
     Logger.error("Could not create a connection to database") 
    } 
} 

func createTablesIfNotExists() { 

    // Logs 

    let logs = Table(TLog.TABLE_NAME) // just the name of your table 
    do { 
     try db.run(logs.create(ifNotExists: true) { t in 
       t.column(TLog.ID, primaryKey: true) // Expression<Int>("id") 
       t.column(TLog.TS) // Expression<String>("ts") 
       t.column(TLog.TAG) // Expression<String>("tag") 
       t.column(TLog.TYPE) ... 
       t.column(TLog.CONTENT) ... 
     }) 
    } catch { 
     Logger.error("Could not create table Logs") 
    } 

}

И .. Util.getDBPath бы ...

импорт SystemConfiguration

класс Util {

class func getDBPath() -> String { 
    let path = NSSearchPathForDirectoriesInDomains(
     .DocumentDirectory, .UserDomainMask, true 
    ).first 

    return path! 
} 

}

Надеюсь, это поможет вам.

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