我尝试使用SQLite.swift Lib,但是我在INSERT期间收到错误:
错误Domain = SQLite.Result Code = 0"(null)"
我已经设置了一个Database类(DBContact是一个简单的结构):
import SQLite
class SQLiteDatabase {
var db : Connection;
let contacts = Table("contacts");
let contacts_id = Expression<Int64>("id");
let contacts_surname = Expression<String?>("surname");
let contacts_firstname = Expression<String?>("firstname");
let contacts_salutation = Expression<String?>("salutation");
let contacts_title = Expression<String?>("title");
init(){
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
self.db = try! Connection("\(path)/contacts.sqlite3");
//Create contacts table
try! db.run(self.contacts.create(ifNotExists: true) { t in
t.column(contacts_id, primaryKey: .autoincrement)
t.column(contacts_surname)
t.column(contacts_firstname)
t.column(contacts_salutation)
t.column(contacts_title)
});
}
func createContact(inContact : DBContact) -> Bool {
var reval = true;
do {
let insert = contacts.insert(contacts_surname <- inContact.surname,
contacts_firstname <- inContact.firstname,
contacts_salutation <- inContact.salutation,
contacts_title <- inContact.title
);
try self.db.run(insert);
} catch {
let error = error as NSError;
print(error);
reval = false;
}
return reval;
}
func listContacts() {
do {
for contact in try self.db.prepare(contacts) {
print("id: \(contact[contacts_id]), name: \(contact[contacts_surname])")
}
} catch {
print("Whoops there was an error")
}
}
}
我这样使用它:
var db = SQLiteDatabase();
override func viewDidLoad() {
super.viewDidLoad();
var sg = DBContact();
sg.surname = "Gerom";
sg.firstname = "Steven";
sg.title = "Mr.";
db.createContact(inContact: sg);
}
为什么我收到此INSERT错误?我的方式是设置这样一个数据库使用正确的类吗? (我是IOS / Swift编程的新手)
最好的问候......