为什么我无法打开数据库文件?
Why do I get Unable to Open Database file?
我是 iOS 开发的初学者,我想在我的应用程序中开发一个数据库。但是,当我尝试创建数据库时,它显示 无法打开数据库文件。
澄清一下 (https://github.com/stephencelis/SQLite.swift/blob/master/Documentation/Index.md)
我的数据库开发代码如下
static func DB(){
do {
let db = try Connection("db.sqlite3")
let users = Table("users")
let id = Expression<Int64>("id")
let name = Expression<String?>("name")
let email = Expression<String>("email")
try db.run(users.create { t in
t.column(id, primaryKey: true)
t.column(name)
t.column(email, unique: true)
})
} catch {
print("Dim background error")
}
}
我从应用委托文件触发这个方法
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
AppCommon.DB()
return true
}
如何解决这个问题?请帮帮我,我真的需要你的帮助..!
在 iOS,您无法在需要的位置创建文件。正确的位置(除其他外)在 文档目录 .
引用您正在使用的库的文档https://github.com/stephencelis/SQLite.swift/blob/master/Documentation/Index.md#connecting-to-a-database:
On iOS, you can create a writable database in your app’s Documents directory.
let path = NSSearchPathForDirectoriesInDomains(
.DocumentDirectory, .UserDomainMask, true
).first!
let db = try Connection("\(path)/db.sqlite3")
Swift 5
文档目录路径现在是一个字符串数组
let path = NSSearchPathForDirectoriesInDomains(
.documentDirectory, .userDomainMask, true)
let db = try Connection("\(path.first ?? "")/db.sqlite3")
我是 iOS 开发的初学者,我想在我的应用程序中开发一个数据库。但是,当我尝试创建数据库时,它显示 无法打开数据库文件。
澄清一下 (https://github.com/stephencelis/SQLite.swift/blob/master/Documentation/Index.md)
我的数据库开发代码如下
static func DB(){
do {
let db = try Connection("db.sqlite3")
let users = Table("users")
let id = Expression<Int64>("id")
let name = Expression<String?>("name")
let email = Expression<String>("email")
try db.run(users.create { t in
t.column(id, primaryKey: true)
t.column(name)
t.column(email, unique: true)
})
} catch {
print("Dim background error")
}
}
我从应用委托文件触发这个方法
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
AppCommon.DB()
return true
}
如何解决这个问题?请帮帮我,我真的需要你的帮助..!
在 iOS,您无法在需要的位置创建文件。正确的位置(除其他外)在 文档目录 .
引用您正在使用的库的文档https://github.com/stephencelis/SQLite.swift/blob/master/Documentation/Index.md#connecting-to-a-database:
On iOS, you can create a writable database in your app’s Documents directory.
let path = NSSearchPathForDirectoriesInDomains( .DocumentDirectory, .UserDomainMask, true ).first! let db = try Connection("\(path)/db.sqlite3")
Swift 5
文档目录路径现在是一个字符串数组
let path = NSSearchPathForDirectoriesInDomains(
.documentDirectory, .userDomainMask, true)
let db = try Connection("\(path.first ?? "")/db.sqlite3")