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

