gpt4 book ai didi

ios - 在 Swift 中使用 FMDB 打开数据库

转载 作者:行者123 更新时间:2023-11-30 12:10:41 25 4
gpt4 key购买 nike

我想使用 FMDB 打开现有数据库。数据库应该是一个以 .db 结尾的 sqlite 数据库。

我的代码是:static 让共享:DBManager = DBManager()

let databaseFileName = "/mydb.db"

var pathToDatabase: String!

var pathNSURL: NSURL!

var database: FMDatabase!


override init() {
super.init()

let documentsDirectory = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString) as String

let zwerg = documentsDirectory + databaseFileName

let pathNSURL = NSURL(fileURLWithPath: zwerg)

let pathString = documentsDirectory + databaseFileName

pathToDatabase = pathNSURL.path
print(pathToDatabase)
}


func firstQuestion() -> Bool {
if openDatabase(){
let query = "SELECT * FROM movie"

do {
let result = try database.executeQuery(query, values: nil)
print(result)
}
catch {
print(error.localizedDescription)
}
database.close()
return true
}
return false
}

func openDatabase() -> Bool {
if database == nil {
print(FileManager.default.fileExists(atPath: pathToDatabase))
if FileManager.default.fileExists(atPath: pathToDatabase) {
print("Database set new path -> File exists")
database = FMDatabase(path: pathToDatabase)
}
}

if database != nil {
print("Database != nil")
if database.open() {
print("Database is open in != nil")
return true
}
}

return false
}

我从 VC 调用方法firstQuestion():

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

print(DBManager.shared.firstQuestion())
}

我的问题是 fileExists-Method 总是返回 false。文件名正确。这是我第一个使用 swift 数据库的项目,所以也许我犯了一个愚蠢的错误......有什么建议吗?

感谢您的帮助!

最佳答案

let fileManager = FileManager.default
let docURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first!

let databaseURL = docURL.appendingPathComponent("databaseNaeme.db")

并将数据库初始化为:

database = FMDatabase(path: databaseURL.absoluteString)

关于ios - 在 Swift 中使用 FMDB 打开数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46101418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com