【发布时间】:2022-07-16 05:01:13
【问题描述】:
我简化为非常简单的代码。
如果结构有一个Int 正在工作,如果有一个UUID,则预览会崩溃(如果我在模拟器或真实设备上运行,它会工作)
经过测试 iOS 15 Xcode 13.1 和 beta 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 -> MyStruct {
let str = MyStruct(str: "struct1-done")
return str
}
}
struct ContentView2_Previews: PreviewProvider {
static var previews: some View {
ContentView2()
}
}
【问题讨论】:
-
var id: String = UUID().uuidString使用这个 -
@ChanOnly123 谢谢,但我认为为了防止预览崩溃而更改我的所有代码并不是一个好主意
-
预览崩溃给你什么错误信息?我在 iOS 15 上的预览中使用 UUID() 没有问题。
-
我遇到了同样的问题,但甚至没有 UUID,只是一个由多个其他结构组成的结构。当我将 async 关键字添加到函数时会发生这种情况,但是一个类似的函数也可以使用 async 返回一个字符串。回溯中的错误是
await resume partial function for closure #2
标签: ios swift iphone swiftui ios15