Como declarar corretamente uma propriedade computada, quando o cálculo usa threads em segundo plano?
Estou tentando declarar uma propriedade computada que consiste em um bloco, executado no thread em segundo plano. Portanto, quando abordo essa propriedade, é nula, pois a computação retorna o resultado quando não está pronta. Como corrigir isso melhor? Obrigado!
enum Result<T> {
case error(error: Error)
case success(data: T)
}
var userID: Result<CKRecordID>? {
var result: Result<CKRecordID>? = nil
container.fetchUserRecordID { recordID, error in
if let error = error { result = .error(error: error) }
if let recordID = recordID { result = .success(data: recordID) }
}
return result
}