Contents

init(data:options:documentAttributes:)

Creates an attributed string from the contents of the specified data object.

Declaration

init(data: Data, options: [NSAttributedString.DocumentReadingOptionKey : Any] = [:], documentAttributes dict: AutoreleasingUnsafeMutablePointer<NSDictionary?>?) throws

Parameters

  • data:

    The data from which to create the string.

  • options:

    Attributes for interpreting the document contents. Specify the Documenttype or Filetype option to interpret the data as a specific type. When sharing files between different platforms, specify the Sourcetextscaling or Targettextscaling options for any required text scaling behaviors. Specify the Characterencoding attribute for plain-text files. Specify the Defaultattributes key to apply document attributes to the returned string. If you specify an empty dictionary, the method identifies the data format from the data itself.

  • dict:

    An in-out dictionary containing document-level attributes. On output, this method updates the dictionary to contain any document-specific keys found in the data. Specify nil if you don’t want the document attributes.

Return Value

Returns an initialized attributed string object, or nil if the method can’t decode the data.

Discussion

Don’t call this method from a background thread if the options dictionary includes the documentType attribute with a value of html. If you do, the method tries to synchronize with the main thread, fails, and times out. Calling it from the main thread works, but can still time out if the HTML contains references to external resources. The HTML import mechanism is meant for implementing something like markdown (that is, text styles, colors, and so on), not for general HTML import.

See Also

Creating from a data file