Contents

write(to:ofType:for:originalContentsURL:)

Writes the contents of the document to a file or file package located by a URL.

Declaration

nonisolated func write(to url: URL, ofType typeName: String, for saveOperation: NSDocument.SaveOperationType, originalContentsURL absoluteOriginalContentsURL: URL?) throws

Parameters

  • url:

    The location to which the document contents are written.

  • typeName:

    The string that identifies the document type.

  • saveOperation:

    The type of save operation.

  • absoluteOriginalContentsURL:

    The location of the previously saved copy of the document (if not nil).

Discussion

The default implementation of this method merely invokes [self writeToURL:absoluteURL ofType:typeName error:outError]. You can override this method instead of one of the three simple writing methods (write(to:ofType:),fileWrapper(ofType:), and data(ofType:)) if your document writing machinery needs access to the on-disk representation of the document revision that is about to be overwritten. The value of absoluteURL is often not the same as [self fileURL]. Other times it is not the same as the URL for the final save destination. Likewise, absoluteOriginalContentsURL is often not the same value as [self fileURL]. If absoluteOriginalContentsURL is nil, either the document has never been saved or the user deleted the document file since it was opened.

For backward binary compatibility with OS X v10.3 and earlier, if writeToFile:ofType:originalFile:saveOperation: is overridden and both URLs use the file: scheme, the default implementation of this method instead invokes:

[self writeToFile:[absoluteURL path]
      ofType:typeName
      originalFile:[absoluteOriginalContentsURL path]
      saveOperation:aSaveOperation];

The save operation used in this case is never NSAutosaveOperation; NSSaveToOperation is used instead.

See Also

Writing the Document’s Content