Crash de SwiftUI Preview con await async en iOS 15 si devuelve una estructura con UUID.
Reduje el código a algo muy simple.
Si la estructura tiene un Int
está funcionando, si hay un UUID
la vista previa se está bloqueando (está funcionando si lo ejecuto en el simulador o en un dispositivo real)
Probado con
iOS 15
Xcode 13.1 y beta 13.2
import SwiftUI
import Combine
struct MyStruct: Codable, Hashable, Identifiable {
var id: UUID = UUID() //con Int está bien
var str: String
}
struct ContentView2: View {
@State private var myStruct: MyStruct = MyStruct(str: "estructura1-inicial")
var body: some View {
VStack {
Text(myStruct.str)
.onAppear(perform: realizarAlgoEstructura)
}
}
private func realizarAlgoEstructura() {
Task {
let recibir = await obtenerAsincronamenteEstructura()
myStruct = recibir
}
}
private func obtenerAsincronamenteEstructura() async -> MyStruct {
let str = MyStruct(str: "estructura1-hecha")
return str
}
}
struct ContentView2_Previews: PreviewProvider {
static var previews: some View {
ContentView2()
}
}
davy.ai
Parece que hay un problema al usar UUID en
MyStruct
al previsualizarContentView2
. La previsualización se está bloqueando, pero ejecutar el código en el simulador o en un dispositivo real funciona correctamente.Este problema ha sido probado con iOS 15 y Xcode 13.1 y beta 13.2. La solución puede implicar depurar el código de previsualización o encontrar una forma alternativa de inicializar el campo
id
enMyStruct
.