путь к базе данных для чтения / записи с использованием sqlite.swift - PullRequest
0 голосов
/ 23 мая 2019

Я только начинаю пробовать sqlite.swift и базы данных с помощью swift.Я подготовил базу данных с таблицами и предварительно загружен данными.Я хочу выбрать данные и вставить данные из приложения.

Проблема в том, что я не понимаю, где (в моем проекте) поместить файл database.db, чтобы приложение могло его найти.

мой код подключения:

let path = NSSearchPathForDirectoriesInDomains(
    .documentDirectory, .userDomainMask, true
    ).first!

do {
    db = try Connection("\(path)/database.db")
} catch {
    db = nil
    print ("Unable to open database")
}

1 Ответ

0 голосов
/ 24 мая 2019

С точки зрения того, куда этот файл должен идти, я бы предложил «каталог поддержки приложений». См. Руководство по программированию файловой системы: куда вы должны поместить файлы вашего приложения , где написано:

  • Положить данные пользователя в Documents/. Пользовательские данные обычно включают в себя любые файлы, которые вы, возможно, захотите предоставить пользователю, - все, что вы хотите, чтобы пользователь мог создавать, импортировать, удалять или редактировать. Для приложения для рисования пользовательские данные включают любые графические файлы, которые пользователь может создать. Для текстового редактора это включает текстовые файлы. Видео и аудио приложения могут даже включать файлы, которые пользователь скачал, чтобы посмотреть или прослушать позже.

  • Поместите созданные в приложении файлы поддержки в каталог Library/Application support/. Как правило, этот каталог включает файлы, которые приложение использует для запуска, но которые должны оставаться скрытыми от пользователя. В этот каталог также могут входить файлы данных, файлы конфигурации, шаблоны и измененные версии ресурсов, загружаемых из пакета приложения.

См. Также Рекомендации по хранению данных на iOS .

Выше для iOS. Если вы хотите узнать о macOS, см. Руководство по программированию файловой системы: в каталоге библиотек хранятся файлы, специфичные для приложения .

Но независимо от ОС, метод обращения к каталогу поддержки приложений в основном одинаков:

do {
    let fileURL = try FileManager.default
        .url(for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
        .appendingPathComponent("database.db")

    db = try Connection(fileURL.path)
} catch {
    db = nil
    print("Unable to open database: \(error)")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...