Ошибки преобразования из Swift 3.0 в Swift 4.2 в неперестроенном токене SQLitt.Swift

Мой текущий код написан на Swift 3, я пытался изменить Swift 4.2 через Xcode10.1. SQLite дает сбой при изменении версии и корректно работает со старым кодом.

Я пытаюсь получить количество записей в таблице, используя SQLite.swift и Swift в приложении Cocoa macOS.

let db = try Connection("\(pathh)/db.sqlite3")
let users = Table("users")
var count = try db.scalar(users.filter(userid == userid).count) 

Однако при выполнении этого кода возникает следующее исключение:

unrecognized token: ":" (code: 1)

Когда я попытался использовать var count = try db.scalar("SELECT COUNT(*) FROM users WHERE userid=?",userid) as! Int64 , возвращается правильный результат. Но эта ошибка возврата обычного возраста

no such table tablename (code:1)

для какого-то стола.

Любая помощь будет оценена по достоинству. Заранее спасибо!


person Chen Yin    schedule 22.04.2020    source источник


Ответы (1)


В моем проекте мне требовалось обновление в моем подфайле:

pod 'SQLCipher', '~>4.2.0'
pod 'SQLite.swift/SQLChiper', '~>0.12.0'

После обновления модуля нераспознанный токен: ":" (код: 1) решается.

person Chen Yin    schedule 23.04.2020