使用SharkORM从本地捆绑读取SQLite数据库

时间:2018-12-17 11:57:58

标签: ios swift sqlite orm dbaccess

我是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文件夹中。

有人可以告诉我哪里出了问题吗?有人可以给我提供工作示例吗?

1 个答案:

答案 0 :(得分:0)

SharkORM将需要对数据库的R / W访问,实际上您需要:

1)确保它是SharkORM兼容的数据库文件,例如所有属性类型,名称和主键都与对象模型匹配(必须具有ID PK列)。

2)在启动时将数据库从捆绑软件中复制到r / w目录中以使用它。 R / O是可能的,但是要完成比较困难。

如果仅在查询中引用表,则还可以使用rawExecute函数来使用ATTACH命令。<​​/ p>