簡體   English   中英

如何在屬性觀察者(didSet,willSet)中使用枚舉?

[英]How to use enums with property observers (didSet, willSet)?

嗨,我寫的是關於張貼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與簡單的實例變量一起使用,它們提議的枚舉將用於包含在集合中觀察到的更改的詳細信息。 枚舉很有用,因為您可以打開類型,然后使用內容來了解​​更改的詳細信息。

您可以使用一個簡單的實例變量,以便用一些更改信息來設置枚舉值,但這是不合邏輯的,混亂的,這不是一個好方法。 該枚舉更適合於自定義觀察,該自定義觀察是在定義觀察者的回調並由此控制傳遞的變量的位置進行設置的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM