Swift – Custom setter on property

You can’t use set like that because when you call self.document = newValue you’re just calling the setter again; you’ve created an infinite loop.

What you have to do instead is create a separate property to actually store the value in:

private var _document: UIDocument? = nil
var document: UIDocument? {
    get {
        return self._document
    }
    set {
        self._document = newValue
        useDocument()
    }
}

Leave a Comment