Как вывести правильный NSRange с NSAttributedString если NSAttributedString инициализирован с Data(HTML)?

Для вывода правильного NSRange с NSAttributedString, инициализированным с Data (HTML), необходимо выполнить следующие шаги:

1. Сначала вам нужно преобразовать Data (HTML) в NSAttributedString. Для этого вы можете использовать метод init(data:options:documentAttributes:) класса NSAttributedString. Этот метод принимает HTML-данные, список опций и может возвращать атрибутивные атрибуты документа.

Пример кода может выглядеть следующим образом:

   guard let data = htmlString.data(using: .utf8) else {
       return
   }

   do {
       let attributedString = try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html], documentAttributes: nil)
   } catch {
       print("Ошибка при инициализации NSAttributedString из HTML: (error)")
   }

2. После того, как у вас есть NSAttributedString, вы можете использовать метод attributedSubstring(from:) для получения подстроки с использованием диапазона NSRange. Метод возвращает новый NSAttributedString, содержащий подстроку.

Пример кода может выглядеть следующим образом:

   let range = NSRange(location: 0, length: attributedString.length)
   let substring = attributedString.attributedSubstring(from: range)

В этом примере мы используем полный диапазон атрибутированной строки, чтобы получить полную подстроку. Вы можете изменить диапазон в зависимости от вашего конкретного требования.

3. Теперь, у вас есть правильный NSRange и атрибутированная подстрока NSAttributedString, которую вы можете использовать по своему усмотрению.

Например, вы можете вывести подстроку с использованием метода string и передать ее на печать с помощью функции print:

   if let substr = substring.string {
       print("Правильный NSRange: (range)") 
       print("Подстрока: (substr)")
   }

В этом примере мы выводим правильный NSRange и строковое представление подстроки. Вы можете использовать эти данные по своему усмотрению, например, для дальнейшей обработки или отображения на пользовательском интерфейсе.

Это основные шаги для вывода правильного NSRange с NSAttributedString, инициализированным с Data (HTML). Учтите, что вам может понадобиться дополнительная обработка атрибутированной строки, в зависимости от ваших конкретных требований.