В пустом проекте (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
EDIT
Это происходит только в предварительном просмотре Canvas. Я получаю ожидаемое поведение в симуляторах.