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() }}