Swift - Custom setter on property Swift - Custom setter on property swift swift

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? = nilvar document: UIDocument? {    get {        return self._document    }    set {        self._document = newValue        useDocument()    }}


Here's a Swift 3 version

var document : UIDocument? {    didSet {        useDocument()    }}