如何在属性观察器(didSet,willSet)中使用枚举?

托马斯·纳扎连科(Tomasz Nazarenko)

嗨,我写的是关于张贴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轻松扩展它。

谢谢

温恩

我认为本文打算将句子分别阅读,因为它是关于观察的通用部分。didSet与简单的实例变量一起使用时,它们建议的枚举将用于包含在集合中观察到的更改的详细信息。枚举很有用,因为您可以打开类型,然后使用内容来了解​​该更改的详细信息。

您可以使用一个简单的实例变量,以便用一些更改信息来设置枚举值,但这是不合逻辑的,混乱的,这不是一个好方法。枚举更适合于自定义观察,该自定义观察是在定义观察者的回调并由此控制传递的变量的位置进行设置的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift:如何在委派中使用属性观察器

来自分类Dev

稍后如何在 rxjs 可观察流中使用属性?

来自分类Dev

属性观察者willSet和didSet; 财产获取者和安置者

来自分类Dev

Swift语言中观察者属性didSet和willSet的用途是什么?

来自分类Dev

使用didSet观察器赋予重写属性时,“错误使用'propertyName'”错误

来自分类Dev

如何在Qt中使用枚举?

来自分类Dev

如何在XSD中使用枚举

来自分类Dev

如何在JAXB中使用枚举?

来自分类Dev

如何在Postgres中使用枚举

来自分类Dev

如何在枚举字段中使用CanCanCan?

来自分类Dev

如何在Python中使用GCP枚举?

来自分类Dev

如何在Qt中使用枚举?

来自分类Dev

如何在lldb中使用枚举

来自分类Dev

如何在骆驼路线中使用枚举?

来自分类Dev

如何在 p:selectOneMenu 中使用枚举

来自分类Dev

如何在角度 5 中使用枚举

来自分类Dev

如何在Web API请求的FromBody ViewModel中使用具有EnumMember属性的枚举?

来自分类Dev

如何在Rails 4中使用简单的表单创建选择枚举属性

来自分类Dev

如何在Yii增强器radioButtonListRow中使用“ required”属性

来自分类Dev

如何在转换器中使用该行的IsSelected属性?

来自分类Dev

如何在Python 2.7的观察者模式中使用装饰器

来自分类Dev

如何在 KnockoutJS 中使用扩展器克隆可观察对象?

来自分类Dev

如何在Typescript中使用动态枚举器(上限数量词)克服枚举类型上的TS2589

来自分类Dev

如何在量角器中使用/分隔枚举,常量和定位符

来自分类Dev

如何使用属性观察器中提供的自定义?

来自分类Dev

如何在开关与整数使用中使用枚举

来自分类Dev

如何在RxSwift中使用flatMap观察较高的Observable?

来自分类Dev

如何在订阅者中使用多个可观察结果

来自分类Dev

如何在 firebase 观察者路径中使用通配符?

Related 相关文章

  1. 1

    Swift:如何在委派中使用属性观察器

  2. 2

    稍后如何在 rxjs 可观察流中使用属性?

  3. 3

    属性观察者willSet和didSet; 财产获取者和安置者

  4. 4

    Swift语言中观察者属性didSet和willSet的用途是什么?

  5. 5

    使用didSet观察器赋予重写属性时,“错误使用'propertyName'”错误

  6. 6

    如何在Qt中使用枚举?

  7. 7

    如何在XSD中使用枚举

  8. 8

    如何在JAXB中使用枚举?

  9. 9

    如何在Postgres中使用枚举

  10. 10

    如何在枚举字段中使用CanCanCan?

  11. 11

    如何在Python中使用GCP枚举?

  12. 12

    如何在Qt中使用枚举?

  13. 13

    如何在lldb中使用枚举

  14. 14

    如何在骆驼路线中使用枚举?

  15. 15

    如何在 p:selectOneMenu 中使用枚举

  16. 16

    如何在角度 5 中使用枚举

  17. 17

    如何在Web API请求的FromBody ViewModel中使用具有EnumMember属性的枚举?

  18. 18

    如何在Rails 4中使用简单的表单创建选择枚举属性

  19. 19

    如何在Yii增强器radioButtonListRow中使用“ required”属性

  20. 20

    如何在转换器中使用该行的IsSelected属性?

  21. 21

    如何在Python 2.7的观察者模式中使用装饰器

  22. 22

    如何在 KnockoutJS 中使用扩展器克隆可观察对象?

  23. 23

    如何在Typescript中使用动态枚举器(上限数量词)克服枚举类型上的TS2589

  24. 24

    如何在量角器中使用/分隔枚举,常量和定位符

  25. 25

    如何使用属性观察器中提供的自定义?

  26. 26

    如何在开关与整数使用中使用枚举

  27. 27

    如何在RxSwift中使用flatMap观察较高的Observable?

  28. 28

    如何在订阅者中使用多个可观察结果

  29. 29

    如何在 firebase 观察者路径中使用通配符?

热门标签

归档