当前位置:   article > 正文

SwiftUI 装饰器 @State_swiftui @state wrappedvalue

swiftui @state wrappedvalue
  1. import UIKit
  2. /**
  3. * 模仿SwiftUI @State注解
  4. *
  5. **/
  6. @propertyWrapper
  7. struct AState<T> {
  8. // class 是引用,不存在值拷贝的情况
  9. private var bind: B
  10. init(wrappedValue : T) {
  11. bind = B(wrappedValue)
  12. }
  13. var wrappedValue : T {
  14. get {
  15. self.bind.val
  16. }
  17. nonmutating set {
  18. self.bind.val = newValue
  19. }
  20. }
  21. class B {
  22. var val : T
  23. init(_ wrappedValue: T) {
  24. self.val = wrappedValue
  25. }
  26. }
  27. }
  28. struct CT {
  29. @AState var val:String
  30. }
  31. // 测试输出
  32. var ct = CT(val: "222")
  33. var ct2 = ct
  34. ct.val = "111"
  35. print("ct >> \(ct.val)")
  36. print("ct2 >> \(ct2.val)")

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/256873
推荐阅读
相关标签
  

闽ICP备14008679号