РЕДАКТИРОВАТЬ:
По просьбе Мэдди я включаю код, который "открывает" файл:
Я удалил приложение и снова запустил его через Xcode.До этого в каталоге документов не было файлов, поэтому я проверил и, поскольку файлов не было, я мог скопировать 32-байтовый файл sqlite со своими таблицами в нем из основного комплекта.
Проблема в том, что теперь, после того как я удалил его, он создает действительный файл sqlite с нулевым байтом в папке каталога без таблиц, когда он запускается, если в каталоге документов нет файла.Так что в приложении appdelegate, когда я проверяю файл, он правильно говорит, что есть, хотя это не тот файл, который мне нужен.Если я вручную захожу в iTunes на устройстве и удаляю файл, он копирует нужный файл.
Это происходит как в симуляторе, так и в устройстве.Есть идеи, что я могу делать не так.Ниже приведен фрагмент кода от делегата приложения: Xcode 10.1 и синтаксис swift 4.2:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
Fabric.with([Crashlytics.self])
let sourcePath = Bundle.main.path(forResource: "mydb", ofType: "db")!
let fileManager = FileManager.default
let doumentDirectoryPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString
let destinationPath = doumentDirectoryPath.appendingPathComponent("mydb")
if !fileManager.fileExists(atPath: destinationPath) {
do {
try fileManager.copyItem(atPath: sourcePath, toPath: destinationPath)
}
catch
{
os_log("error copying database")
Crashlytics.sharedInstance().recordError(error)
print(error)
}
}
return true
}
код, открывающий файл
import Foundation
import SQLite
import os.log
var connected: Bool
//MARK: - private attributes
var db: Connection?
//MARK: - constructor
init() {
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
do {
db = try Connection("\(path)/mydb.db")
connected = true
}
catch {
connected = false
}
}
Заранее большое спасибо.Это действительно озадачивает меня.