斯威夫特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

回到顶部