我是 Swift、Xcode 和 SQLite 的新手。尝试打开/创建数据库并创建表。它适用于模拟器,但不适用于我的 iPhone。如果有人能帮我解决这个问题,我将不胜感激。
func openDatabase() -> OpaquePointer? {
let filePath = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathExtension(path)
var db : OpaquePointer? = nil
// Check for error in creating db or return database
if sqlite3_open(filePath.path, &db) != SQLITE_OK {
print("Error in creating database.")
let errorMessage = String(cString: sqlite3_errmsg(db))
print(errorMessage)
sqlite3_close(db)
db = nil
return nil
} else {
print("Database has been created with path \(path)")
return db
}
}
//Create database table with query
func createTable(){
let query = "CREATE TABLE IF NOT EXISTS prime(primenumber INTEGER, date TEXT);"
var createTable : OpaquePointer? = nil
if sqlite3_prepare_v2(self.db, query, -1, &createTable, nil) == SQLITE_OK {
if sqlite3_step(createTable) == SQLITE_DONE { //table is created
print("Table successfully created.")
} else {
print("Table creation failed.")
}
} else {
print("Table preparation failed.")
let errorMessage = String(cString: sqlite3_errmsg(db))
print(errorMessage)
}
}
错误信息:
2021-01-06 17:25:22.308037+0100 SQLiteTest[3691:955723] [logging-persist] 无法在 [378230ae7f] 的第 43353 行打开文件 2021-01-06 17:25:22.308134+0100 SQLiteTest[3691:955723 ] [logging-persist] os_unix.c:43353: (0) open(/var/mobile/Containers/Data/Application/D0AEB9BE-E286-4755-B4DD-813F7EA1935D/Documents.myDb.sqlite) - 未定义错误:0 错误在创建数据库时。无法打开数据库文件
2021-01-06 17:25:22.308955+0100 SQLiteTest[3691:955723] [logging] API 调用与 NULL 数据库连接指针 2021-01-06 17:25:22.309016+0100 SQLiteTest[3691:955723] [logging] 滥用在 [378230ae7f] 的第 131400 行,表准备失败。记不清