class DBLocal(
context: Context,
name: String?,
factory: SQLiteDatabase.CursorFactory?,
version: Int
) : SQLiteOpenHelper(context, DATABASE_NAME, factory, DATABASE_VERSION) {
}
Проблема: Класс DBLocal получает Context в качестве первого параметра, но при вызове его из класса DBHandler.
val dbLocal = DBLocal(this, null, null, 1) //pb on this line
Вы передаете this
как DBLocalкласс, который не является Контекстом подклассов класса Context.Вот почему ваше приложение выдает ошибку.
Сообщение об ошибке: Несоответствие типов требует контекста
Решение: Простое решение - передать контекст в методдля которого требуется контекст для выполнения работы.
fun methodToSelectData(context: Context, strQuery: String, dataBase: String)/*, completion: @escaping (_ result:*/ {
print(message = strQuery)
val dbLocal = DBLocal(context, null, null, 1) //pb on this line
dbLocal.methodToSelectData(strQuery)
}
и передача контекста при вызове DBHandler, например, в действии или службе.
DBHandler.sharedInstance.methodToSelectData(this, "your query", "dataBase")