0

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

谁能告诉我有什么问题?任何人都可以提供我工作的例子吗?

4

1 回答 1

0

SharkORM 将需要对数据库进行 R/W 访问,实际情况是您需要:

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

2) 在启动时将数据库从包中复制到 ar/w 目录中以使用它。R/O 是可能的,但更难实现。

如果表仅在查询中被引用,您也可以使用 rawExecute 函数来使用 ATTACH 命令。

于 2018-12-18T10:38:16.493 回答