Как я могу отобразить подробности ошибки при неудачной инициализации FMDatabaseQueue? - PullRequest
0 голосов
/ 03 февраля 2020

Я полагаю, что очень редко я получаю нулевое значение 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 здесь?

...