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?>?) throwsParameters
- 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
nilif 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.