如果我想将我的视图控制器的状态表示为单个结构然后实现撤销机制,那么我如何更改结构上的一个属性,同时获取前一个状态的副本?
struct A { let a: Int let b: Int init(a: Int = 2,b: Int = 3) { self.a = a self.b = b } } let state = A()
请注意,虽然对常量a和b使用占位符值,但是除了此占位符之外,您无法使用任何其他值构造A的实例.写初始化器.您可以编写自定义方法来更改struct中的任何值:
struct A { let a: Int let b: Int init(a: Int = 2,b: Int = 3) { self.a = a self.b = b } func changeValues(a: Int? = nil,b: Int? = nil) -> A { return A(a: a ?? self.a,b: b ?? self.b) } } let state = A() let state2 = state.changeValues(b: 4)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。