Чтение базы данных SQLite из локального пакета с помощью SharkORM - PullRequest
0 голосов
/ 17 декабря 2018

Я новичок в разработке для 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 голосов
/ 18 декабря 2018

SharkORM потребуется R / W доступ к базе данных, реальность такова, что вам потребуется:

1) Убедитесь, что это файл базы данных, совместимый с SharkORM, например все типы свойств, имена и первичные ключисоответствует объектной модели (должен иметь столбец Id PK).

2) Скопируйте базу данных из пакета в каталог ar / w при запуске, чтобы использовать ее.R / O возможно, но труднее достичь.

Вы также можете использовать функцию rawExecute для использования команды ATTACH, если на таблицы нужно ссылаться только из запросов.

...