您好我正在写关于https://appventure.me/2015/10/17/advanced-practical-enum-examples/#sec-4-2
的帖子如何在属性的didSet内的观察者模式中使用枚举?我尝试了各种方法,但对我来说没有多大意义。
有人可以举例说明吗?我试图找到答案,因为解决方案可能很有趣并且有助于保持代码清洁。
这是我正在谈论的帖子的摘录:
观察员模式
在Swift中有各种建模方法。 (...)didSet语法使得实现简单观察变得容易。可以在此使用枚举,以使观察对象发生的更改类型更清晰。想象一下收集观察。如果我们考虑它,我们只有几种可能的情况:插入一个或多个项目,删除一个或多个项目,更新一个或多个项目。这听起来像是一个枚举的工作:
enum Change {
case Insertion(items: [Item])
case Deletion(items: [Item])
case Update(items: [Item])
}
然后,观察对象可以非常干净的方式接收发生的具体信息。这也可以通过添加oldValue和newValue轻松扩展。
由于
答案 0 :(得分:0)
我认为这篇文章意图将句子分开阅读,因为它是一个关于观察的通用部分。 didSet
与简单的实例变量一起使用,枚举因为它们的建议将用于包含在集合中观察到的更改的详细信息。枚举将非常有用,因为您可以打开类型,然后使用内容来了解该更改的详细信息。
你可以有一个简单的实例变量,以便使用这些更改信息设置枚举值,但这是不合逻辑和混乱的,它不是一个好的方法。枚举更适合于在定义回调给观察者的位置设置的自定义观察,因此控制传递的变量。