具有只读公共访问权限的ReactiveSwift可变属性
发布时间:2020-12-14 04:43:39 所属栏目:百科 来源:网络整理
导读:我有一个枚举属性状态的类.此属性的值(按值表示Reactive Swift.Property的值)需要被其他类访问和观察,但值更改应该是私有的.目前它是以这样的方式实现的: enum State { case stopped,running,paused}var state: PropertyState { return Property(mutableSta
我有一个枚举属性状态的类.此属性的值(按值表示Reactive
Swift.Property的值)需要被其他类访问和观察,但值更改应该是私有的.目前它是以这样的方式实现的:
enum State { case stopped,running,paused } var state: Property<State> { return Property(mutableState) } fileprivate let mutableState = MutableProperty<State>(.stopped) 这种模式允许我修改类文件中的mutableState属性.同时,课外状态仅适用于阅读和观察. 问题是是否有办法使用单一属性实现类似的东西?也许有人可以为同一解决方案建议更好的模式? 解决方法
我想不出用一个属性做任何事情.我对代码进行的唯一调整是使状态成为存储属性,而不是每次访问时都新创建的计算属性:
class Foo { let state: Property<State> fileprivate let mutableState = MutableProperty<State>(.stopped) init() { state = Property(mutableState) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |