Я полагаю, что очень редко я получаю нулевое значение FMDatabaseQueue, возвращаемое этим вызовом инициализатора:
class Database {
lazy var BACKEND_DB_Q:FMDatabaseQueue = Database.getDbQ("mainIosDb")
...
static func getDbQ(_ dbName:String) -> FMDatabaseQueue {
return FMDatabaseQueue(path: getPath(dbName))!
}
...
}
Обратная строка Utilities.swift: 401 - это строка вверху моего трассировки стека отчетов об ошибках:
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000102d9b9b0
Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [320]
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 rMove 0x0000000102d9b9b0 Database.BACKEND_DB_Q.getter + 1456560 (Utilities.swift:401)
1 rMove 0x0000000102d64c20 globalinit_33_8E86BA5ECC7E222AC0BCB7BA06E34FE3_func0 + 1231904 (Preferences.swift:9)
2 libdispatch.dylib 0x000000018bfd7184 _dispatch_client_callout + 16
3 libdispatch.dylib 0x000000018bfa9f50 _dispatch_once_callout + 28
4 libswiftCore.dylib 0x00000001998541a0 swift_once + 40
...
Что-то не так с этим кодом?
Я разворачиваю FMDatabaseQueue, потому что мое приложение бесполезно без доступа к базе данных, поэтому сбой приложения казался разумным. Тем не менее, я хотел бы быть в состоянии выяснить, почему это не удается предотвратить по возможности, но я не вижу сообщения об ошибке; Как я могу получить полезное описание ошибки с моими отчетами cra sh здесь?