斯威夫特3 KVO观察NSMutableSet中的变化(添加,删除,修改项目)
嗨我开发的应用程序有一组唯一的字符串。我有一个函数来添加,删除,修改NSMutableSet中的项目。我想在viewDidload
使用KVO(键值观察者)观察每当集已更改(添加,删除,修改项目)斯威夫特3 KVO观察NSMutableSet中的变化(添加,删除,修改项目)
这里我的代码
dynamic var barCodeSet = NSMutableSet()
我添加观察:
override func viewDidLoad() { super.viewDidLoad()
addObserver(self, forKeyPath: #keyPath(barCodeSet), options: [.old,.new,.initial], context: nil)
}
这是我观察到的功能:
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { if keyPath == #keyPath(barCodeSet) {
print(barCodeSet.count)
for barcode in barCodeSet {
print(barcode)
}
}
}
不知道为什么韩国国际志愿者组织是不行的ING。任何人都知道如何修改代码,以便我们可以在设置项目更改时得到通知。谢谢
回答:
假设你不需要使用NSMutableSet,你可以在变量声明中使用didSet子句。在操场上试试以下内容:
import UIKit class myClass {
init() {
}
dynamic var barCodeSet: Set<String> = Set<String>() {
didSet {
print(barCodeSet.count)
for barcode in barCodeSet {
print(barcode)
}
}
}
}
let thisClass = myClass()
thisClass.barCodeSet = ["Apples", "Bananas", "Oranges"]
thisClass.barCodeSet.insert("Grapes")
无论何时设置barCodeSet的值,其计数和内容都会打印到控制台。
以上是 斯威夫特3 KVO观察NSMutableSet中的变化(添加,删除,修改项目) 的全部内容, 来源链接: utcz.com/qa/263123.html