Проблема с использованием NSRange(location: 0, length: self.count)
.
self.count
- правильное количество символов в Swift String
. Но NSAttributedString
основан на NSString
и использовании символов в кодировке UTF-16. Вы применяете стиль только к половине реальной строки. Фактически, он разделяет одного из персонажей пополам.
Простое решение - получить длину строки как NSString
.
Заменить:
NSRange(location: 0, length: self.count)
с:
NSRange(location: 0, length: (self as NSString).length))