Сбой предварительного просмотра SwiftUI с ожиданием асинхронного iOS15, если возвращает структуру с UUID

#ios #swift #iphone #swiftui #ios15

#iOS #быстрый #iPhone #свифтуи #ios15

Вопрос:

Я свел все к очень простому коду. Если структура имеет a Int , работает, если есть сбой UUID предварительного просмотра (он работает, если я работаю на симуляторе или реальном устройстве)

Протестировано с iOS 15 Xcode 13.1 и бета-версией 13.2

 import SwiftUI import Combine  struct MyStruct: Codable, Hashable, Identifiable {  var id: UUID = UUID() //with Int is ok  var str: String }  struct ContentView2: View {    @State private var myStruct: MyStruct = MyStruct(str: "struct1-init")    var body: some View {  VStack {  Text(myStruct.str)  .onAppear(perform: doSometingStruct)  }  }    private func doSometingStruct() {  Task {  let get = await getAsyncStruct()  myStruct = get  }  }    private func getAsyncStruct() async -gt; MyStruct {  let str = MyStruct(str: "struct1-done")  return str  } }  struct ContentView2_Previews: PreviewProvider {  static var previews: some View {  ContentView2()  } }  

Комментарии:

1. var id: String = UUID().uuidString используйте это

2. @ChanOnly123 спасибо, но я не думаю, что это хорошая идея-менять весь мой код только для предотвращения сбоя предварительного просмотра

3. Какое сообщение об ошибке выдает сбой предварительного просмотра? Я использую UUID() в своих превью на iOS 15 без проблем.