I am trying to extract data items from DataTablein SQLite, but when I get the data, I get the data as myproject.mymodelclass, where WidgetDatais my model class, and myprojectis the name of my project I'm working on, is a console snapshot
[MyProject.WidgetData, MyProject.WidgetData, MyProject.WidgetData, MyProject.WidgetData]
But I want all the elements to DataTablebe printed in the class ViewController.
Class WidgetData strong>
import Foundation
class WidgetData {
var widgetid: Int64?
var widgetname: String = ""
var widgetdescription : String = ""
var widgetform: String = ""
var formid : Int64?
var formname : String = ""
var formdescription : String = ""
var formcategory : String = ""
init(widgetid: Int64) {
self.widgetid = widgetid
}
init(formid: Int64) {
self.formid = formid
}
init(widgetid: Int64, widgetname: String, widgetdescription: String, widgetform: String) {
self.widgetid = widgetid
self.widgetname = widgetname
self.widgetdescription = widgetdescription
self.widgetform = widgetform
}
init(formid: Int64, formname : String, formdescription : String, formcategory : String) {
self.formid = formid
self.formname = formname
self.formdescription = formdescription
self.formcategory = formcategory
}
}
Class StephencelisDB
import Foundation
class WidgetData {
var widgetid: Int64?
var widgetname: String = ""
var widgetdescription : String = ""
var widgetform: String = ""
var formid : Int64?
var formname : String = ""
var formdescription : String = ""
var formcategory : String = ""
init(widgetid: Int64) {
self.widgetid = widgetid
}
init(formid: Int64) {
self.formid = formid
}
init(widgetid: Int64, widgetname: String, widgetdescription: String, widgetform: String) {
self.widgetid = widgetid
self.widgetname = widgetname
self.widgetdescription = widgetdescription
self.widgetform = widgetform
}
init(formid: Int64, formname : String, formdescription : String, formcategory : String) {
self.formid = formid
self.formname = formname
self.formdescription = formdescription
self.formcategory = formcategory
}
}
ViewController in which I retrieve values
var dataList = [WidgetData]()
var db: OpaquePointer?
var stmt: OpaquePointer?
var widgetnameV = String()
var widgetdescriptionV = String()
var widgetformV = String()
private var contacts = [WidgetData]()
private var selectedContact: Int?
func formDataSetup() {
let queryString = "INSERT INTO WidgetTable (widgetname, widgetdescription, widgetform) VALUES (?,?,?)"
if sqlite3_prepare(db, queryString, -1, &stmt, nil) != SQLITE_OK{
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("error preparing insert: \(errmsg)")
return
}
if sqlite3_bind_text(stmt, 1, widgetnameV, -1, nil) != SQLITE_OK{
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("failure binding name: \(errmsg)")
return
}
if sqlite3_bind_text(stmt, 2, widgetdescriptionV, -1, nil) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("failure binding name: \(errmsg)")
return
}
if sqlite3_bind_text(stmt, 3, widgetformV, -1, nil) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("failure binding name: \(errmsg)")
return
}
if sqlite3_step(stmt) != SQLITE_DONE {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("failure inserting hero: \(errmsg)")
return
}
}
func readValues(){
let queryString = "SELECT * FROM WidgetTable"
print(dataList)
var stmt:OpaquePointer?
if sqlite3_prepare(db, queryString, -1, &stmt, nil) != SQLITE_OK{
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("error preparing insert: \(errmsg)")
return
}
while(sqlite3_step(stmt) == SQLITE_ROW){
let widgetid = sqlite3_column_int(stmt, 0)
let widgetnameC = String(cString: sqlite3_column_text(stmt, 1))
let widgetdescriptionC = String(cString: sqlite3_column_text(stmt, 2))
let widgetformC = String(cString: sqlite3_column_text(stmt, 3))
dataList.append(WidgetData(widgetid: Int64(Int(widgetid)), widgetname: String(describing: widgetnameC), widgetdescription: String(describing: widgetdescriptionC), widgetform: String(describing: widgetformC)))
print(dataList)
}
}