Região acessada a partir de encadeamento incorreto - novamente

Percebi muitos problemas ao acessar o objeto de região, e pensei que minha solução seria resolver isso.

Então, eu escrevi um método simples de ajuda como este:

public func write(completion: @escaping (Realm) -> ()) {
    DispatchQueue(label: "realm").async {
        if let realm = try? Realm() {
            try? realm.write {
                completion(realm)
            }
        }
    }
}

Eu pensei que o bloco de conclusão seria bom, porque toda vez que eu escrevo um objeto ou o atualizo, eu uso esse método acima.

Infelizmente, estou recebendo erro:

libc++abi.dylib: terminating with uncaught exception of type realm::IncorrectThreadException: Realm accessed from incorrect thread.

questionAnswers(3)

yourAnswerToTheQuestion