这似乎是一个简单的问题,但现在我已经绕了很长一段时间的圈子,所以是时候问了。检测引用对象的ANY属性变化的最佳方法是什么?我正在使用Backendless作为后端,所以我在这一点上承诺使用类,所以使用结构体不是一个选项。
这里有两个我一直在尝试的方法...
1.使用.objectWillChange和/或.sink的某种组合,但我只能让它们在对象的单个属性上工作。如果我附加到对象,它只会在我为var分配新对象时通知。
1.创建一个对象的副本作为一个引用来检查更改,这需要我创建一个深度副本的某个版本,这似乎是错误的方法,而且非常笨拙。
这样做的关键是,我不想在每次单个属性更改时都“保存”对象,我宁愿等待并在关闭或类似操作时保存整个对象,但如果不为每个属性编写代码,我找不到将对象标记为“已更改”的最佳方法......这在已经有发布者的情况下显得很奇怪。但是我找不到一个方法来监视对象是否有任何Published事件要发出。
下面是一个具体的使用案例:
1.类示例传递到视图中。
1.类示例可能在视图中更改。
1.在退出视图时,我需要保存对象(如果对象已更改)。
第三步是我的难点。我不知道如何确定类示例是否发生了变化。除非需要,否则我不想运行Backendless保存函数,但我还没有找到一种方法,在不对每个属性进行编码的情况下确定对象是否发生了变化。如果这就是swift中的做法,那么它就是这样。但让我觉得我遗漏了什么。或者我这样处理问题是错的吗?
1条答案
按热度按时间tcomlyy61#
试试这个