Ваша проблема с диапазоном связана с тем, что указанная вами строка пуста.Вы никогда не давали ему исходный текст.
Измените:
let stringFormatted = NSMutableAttributedString()
на:
let stringFormatted = NSMutableAttributedString(string: code.statusType.title)
Тогда диапазон, который у вас есть, будет работать.Конечно, это странный способ вычисления диапазона всей строки.Просто сделайте:
let range = NSRange(location: 0, length: (code.statusType.title as NSString).length)
Но есть намного более простой способ создать строку атрибута, когда атрибуты должны быть применены ко всей строке:
extension ImageTableViewCell {
func formatLabel(code: SectionItem) {
let attributes = [ NSAttributedStringKey.foregroundColor: code.statusType.color, NSAttributedStringKey.underlineStyle: NSUnderlineStyle.styleSingle.rawValue ]
let stringFormatted = NSAttributedString(string: code.statusType.title, attributes: attributes)
self.titleLabel.attributedText = stringFormatted
}
}