Search code examples
swiftobserver-patternkey-value-observing

Is it a way to observe global variable in Swift?


I want to add an observer to check changes of a global variable, but it not seems possible.

var selectedItem: NSManagedObject?

class LCCC: UICollectionViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // need to set up an "observer" that trigger selectedItemDidChange method, if selectedItem changed
    }

    func selectedItemDidChange {
    }
}

Solution

  • I think the most idiomatic way to do this in swift would be using property observers:

    var test:NSString = "hi" {
        willSet {
    
        }
        didSet {
    
        }
    }
    

    (Although you need to provide an initializer)