Instance Method

autosaveWithImplicitCancellability:completionHandler:

Autosaves the document’s contents at an appropriate location if it needs autosaving.

Declaration

- (void)autosaveWithImplicitCancellability:(BOOL)autosavingIsImplicitlyCancellable completionHandler:(void (^)(NSError *errorOrNil))completionHandler;

Parameters

autosavingIsImplicitlyCancellable

The value in the autosavingIsImplicitlyCancellable property while autosaving is happening.

completionHandler

The completion handler block object passed in to be invoked at some point in the future, perhaps after the method invocation has returned. The completion handler must be invoked on the main thread.

The block takes one argument:

errorOrNil

If successful, pass a nil error. If not successful, pass an NSError object that encapsulates the reason why the document could not be autosaved.

Discussion

The default implementation of this method does the following:

  1. Checks the value of the hasUnautosavedChanges property.

  2. If the value of that property is NO, the method runs the completion handler with a nil error and returns immediately.

    If the value is YES, calls autosavesInPlace on the class to determine where the autosaved document contents should go.

    The method also gets the value in fileURL to ensure that the file has an actual URL, because it is not possible to autosave in place if the document does not yet have a permanent location.

  3. Checks the value in the autosavingFileType property to determine the file type for the autosaved file.

  4. Calls saveToURL:ofType:forSaveOperation:completionHandler:.

    The value of the saveToURL parameter is the location where the file should be saved. If the file has a URL and the class specifies that autosave should occur in place, this is the URL of the file. Otherwise, this is the location of a nonexistent file in the specified autosave location.

    The value for the ofType parameter is determined by a call to autosavingFileType.

    The value of the forSaveOperation parameter is NSAutosaveInPlaceOperation if the class is configured to autosave in place and the file has a URL. Otherwise, the value is NSAutosaveElsewhereOperation.

See Also

Autosaving

- checkAutosavingSafetyAndReturnError:

Returns a Boolean value indicating whether it is probably safe to autosave document changes.

- scheduleAutosaving

Schedules periodic autosaving for the purpose of crash protection.

hasUnautosavedChanges

A Boolean value indicating whether the document has changes that have not been autosaved.

- autosaveDocumentWithDelegate:didAutosaveSelector:contextInfo:

Autosaves the document’s contents at an appropriate location.

autosavesInPlace

Returns whether the receiver supports autosaving in place.

autosavesDrafts

Returns whether the receiving subclass of NSDocument supports autosaving of drafts.

preservesVersions

Returns whether the receiving subclass of NSDocument supports Versions.

- browseDocumentVersions:

Opens the Versions browser in the document’s main window.

autosavingFileType

Returns the document type that should be used for an autosave operation.

autosavingIsImplicitlyCancellable

A Boolean value indicating whether autosaving is happening now but could be safely cancelled.

autosavedContentsFileURL

The location of the most recently autosaved document contents.