others - SwiftUI - 切換控制台日誌的用法:"invalid mode'kCFRunLoopCommonModes'"didSet不能工作

當我使用它們時,我得到這個控制台錯誤:

,該消息每次執行只會出現一次。


import SwiftUI



struct ContentView: View {



 @State private var notifyCheck = false {


 didSet {


 print("Toggle pushed!")


 }


 }



 var body: some View {


 Toggle(isOn: $notifyCheck) {


 Text("Activate?")


 }


 }


}




;- )

时间:

忽略該警告,它是SwiftUI內部函數,不影響內容,

didSet不能工作,因為這裡的self (作為View結構)是不可變的,而@State只是通過非可變setter存儲的屬性包裝。

更新:在切換時執行操作


@State private var notifyCheck = false



var body: some View {



 let bindingOn = Binding<Bool> (


 get: { self.notifyCheck }


 set: { newValue in


 self.notifyCheck = newValue


 // << do anything


 }


 )


 return Toggle(isOn: bindingOn) {


 Text("Activate?")


 }


}



...