Swift 领域创建有时会崩溃

Swift 领域创建有时会崩溃,swift,realm,Swift,Realm,为了创建我的领域实例,我创建了一个名为领域提供者的类。不幸的是,它有时会在队列中崩溃 return realm! 你能看到什么是错误的,为什么会这样吗 class RealmProvider { private var realm: Realm? private let currentSchemaVersion: UInt64 = 6 func loadRealm() -> Realm { if let realm = self.realm

为了创建我的领域实例,我创建了一个名为领域提供者的类。不幸的是,它有时会在队列中崩溃

return realm!
你能看到什么是错误的,为什么会这样吗

class RealmProvider {

    private var realm: Realm?
    private let currentSchemaVersion: UInt64 = 6

    func loadRealm() -> Realm {

        if let realm = self.realm {
            return realm
        }

        migrateRealm()

        if let _ = NSClassFromString("XCTest"){
            realm =  try! Realm(configuration: Realm.Configuration(fileURL: nil, inMemoryIdentifier: "test", syncConfiguration: nil, encryptionKey: nil, readOnly: false, schemaVersion: currentSchemaVersion, migrationBlock: nil, deleteRealmIfMigrationNeeded: true, objectTypes: nil))
        } else {
            realm = try! Realm()
        }
        return realm!
    }

    private func migrateRealm() {

        Realm.Configuration.defaultConfiguration = Realm.Configuration(
            schemaVersion: currentSchemaVersion, migrationBlock: { _, oldSchemaVersion in

                if (oldSchemaVersion < self.currentSchemaVersion) {
                    self.purgeRealm()
                }
        })
    }

    private func purgeRealm() {
        logger.warning("deleting realm data...")
        do {
            if let realmUrl = Realm.Configuration.defaultConfiguration.fileURL {
                try FileManager.default.removeItem(at: realmUrl)
            }
        } catch {
            logger.error("failed deleting realm data")
        }
    }

}
类重新提供程序{
私有领域:领域?
私有let currentschemaversation:UInt64=6
func loadRealm()->Realm{
如果让realm=self.realm{
返回域
}
migrateRealm()
如果let=NSClassFromString(“xTest”){
realm=try!realm(配置:realm.configuration(fileURL:nil,inMemoryIdentifier:test,syncConfiguration:nil,encryptionKey:nil,readOnly:false,schemaVersion:currentSchemaVersion,migrationBlock:nil,DeleteRealMifMigrationRequired:true,objectTypes:nil))
}否则{
realm=try!realm()
}
返回王国!
}
私有函数migrateRealm(){
Realm.Configuration.defaultConfiguration=Realm.Configuration(
schemaVersion:currentSchemaVersion,migrationBlock:{},中的oldSchemaVersion
if(oldSchemaVersion
由于某种原因,似乎没有创建领域,请尝试在使用
do catch
创建领域时处理错误,以获取准确的错误消息。由于这种情况只是偶尔发生,您有没有建议如何向我发送此错误消息?我使用的是buddybuild,这里的堆栈跟踪是0 libswiftCore​.动态库(TFs16)断言失败FTVS12静态字符串(SU5标记)单元32 OS5从不1 libswiftCore​.dylib swift\u意外错误\u合并2 libswiftCore​.dylib swift_errorInMainTry使用
do{..}catch let error{…}
并输出错误。“catch”块不可访问,因为“do”块中没有抛出错误。日志中是否有其他错误消息
Realm()
在无法创建时抛出错误。你能重现这个问题吗?