使用 SharkORM 从本地包中读取 SQLite 数据库
Read SQLite database from local bundle using SharkORM
我是 iOS 开发新手,我想使用 SharkORM 读取存储在应用程序包中的数据库。我找到了 getCustomSettings()
委托,但我认为我用错了。它在其他地方创建了新的数据库,但它是空的。
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, SRKDelegate {
private static let DatabaseName : String = "data"
private static let DatabaseType : String = "db"
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
SharkORM.setDelegate(self)
SharkORM.openDatabaseNamed("data")
return true
}
// MARK: SharkORM
func getCustomSettings() -> SRKSettings {
let settings = SRKSettings()
let databaseURL = URL(fileURLWithPath: Bundle.main.path(forResource: AppDelegate.DatabaseName, ofType: AppDelegate.DatabaseType)!)
settings.databaseLocation = databaseURL.deletingLastPathComponent().path
return settings
}
}
我的数据库文件名为 data.db
,它存储在项目的 Resources/Database
文件夹中。
谁能告诉我哪里出了问题?谁能给我提供工作示例?
SharkORM 将需要 R/W 访问数据库,实际情况是您需要:
1) 确保它是一个 SharkORM 兼容的数据库文件,例如所有 属性 类型、名称和主键都匹配对象模型(必须有 Id PK 列)。
2) 将数据库从包中复制到启动时的 r/w 目录中以使用它。 R/O 是可能的,但更难实现。
如果仅在查询中引用表,您还可以使用 rawExecute 函数来使用 ATTACH 命令。
我是 iOS 开发新手,我想使用 SharkORM 读取存储在应用程序包中的数据库。我找到了 getCustomSettings()
委托,但我认为我用错了。它在其他地方创建了新的数据库,但它是空的。
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, SRKDelegate {
private static let DatabaseName : String = "data"
private static let DatabaseType : String = "db"
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
SharkORM.setDelegate(self)
SharkORM.openDatabaseNamed("data")
return true
}
// MARK: SharkORM
func getCustomSettings() -> SRKSettings {
let settings = SRKSettings()
let databaseURL = URL(fileURLWithPath: Bundle.main.path(forResource: AppDelegate.DatabaseName, ofType: AppDelegate.DatabaseType)!)
settings.databaseLocation = databaseURL.deletingLastPathComponent().path
return settings
}
}
我的数据库文件名为 data.db
,它存储在项目的 Resources/Database
文件夹中。
谁能告诉我哪里出了问题?谁能给我提供工作示例?
SharkORM 将需要 R/W 访问数据库,实际情况是您需要:
1) 确保它是一个 SharkORM 兼容的数据库文件,例如所有 属性 类型、名称和主键都匹配对象模型(必须有 Id PK 列)。
2) 将数据库从包中复制到启动时的 r/w 目录中以使用它。 R/O 是可能的,但更难实现。
如果仅在查询中引用表,您还可以使用 rawExecute 函数来使用 ATTACH 命令。