赞
踩
- import UIKit
-
-
- /**
- * 模仿SwiftUI @State注解
- *
- **/
-
- @propertyWrapper
- struct AState<T> {
- // class 是引用,不存在值拷贝的情况
- private var bind: B
-
- init(wrappedValue : T) {
- bind = B(wrappedValue)
- }
-
- var wrappedValue : T {
- get {
- self.bind.val
- }
-
- nonmutating set {
- self.bind.val = newValue
- }
- }
-
- class B {
- var val : T
- init(_ wrappedValue: T) {
- self.val = wrappedValue
- }
- }
- }
-
-
- struct CT {
- @AState var val:String
- }
-
-
- // 测试输出
-
- var ct = CT(val: "222")
- var ct2 = ct
-
- ct.val = "111"
- print("ct >> \(ct.val)")
- print("ct2 >> \(ct2.val)")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。