在空白项目(Xcode 11.5)上,onAppear方法被调用两次。
struct ContentView: View {
@State var hello : Int = 0
init() {
print("Init")
}
func appear() {
self.hello += 1
print(self.hello)
}
var body: some View {
Text("Hello, World!")
.onAppear(perform: { self.appear() })
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
预期输出:
Init
1
实际输出:
Init
1
1
不仅如此,hello变量在第二个调用中也不会增加。两次的输出均为1
。我已经在两台不同计算机上的不同项目上重现了该错误。我应该注意,该项目同时启用了Core Data和CloudKit
编辑
这仅在“画布”预览中发生。我在模拟器中得到了预期的行为。