#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 без проблем.