观察添加到 Set 的值 - Swift

Oll*_*lie 3 ios swift

是否可以观察到添加到Set数据结构中的值?

我正在努力实现的目标:

var storedStrings = Set<String>() {
    didSet (value) {
        // where value is a string that has been added to the Set
    }
}
Run Code Online (Sandbox Code Playgroud)

示例:
storedStrings.insert("hello")
didSet 被调用,因为已添加新值。

storedString.insert("world")
didSet 再次调用。

storedString.insert("hello")
didSet 未调用,因为该集合已包含字符串“hello”

cou*_*elk 5

这可能有点贵,但您仍然可以执行以下操作:

var storedStrings = Set<String>() {
    didSet {
        if storedStrings != oldValue {
            print("storedStrings has changed")
            let added = storedStrings.subtracting(oldValue)
            print("added values: \(added)")
            let removed = oldValue.subtracting(storedStrings)
            print("removed values: \(removed)")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)