Моя цель — использовать TextKit для выделения курсивом, установки размера текста и т. д. определенных слов.
Для начала я только пытаюсь выделить символ в своей текстовой строке. Будучи новичком в TextKit (и, честно говоря, в программировании в целом), я следую теме подсветки синтаксиса в выпуске № 5 obc.io.
При использовании NSLayoutManager, встроенного в созданный мной UITextView, мой текст появляется на экране без исключений. Когда я устанавливаю свой UITextView в качестве менеджера компоновки моего подкласса NSTextStorage в моем контроллере представления (ниже), я получаю ошибки для исключения для недопустимого индекса (ов) глифа.
_textStorage = [BBRSyntaxHighlightTextStorage new];
[_textStorage addLayoutManager: self.readerTextView.layoutManager];
Вывод консоли ниже:
_NSLayoutTreeLineFragmentRectForGlyphAtIndex invalid glyph index 528
2013-12-01 15:23:24.949 BibleReader[6077:70b] !!! _NSGlyphTreeInvalidateGlyphsForCharacterRange invalid char range 1
2013-12-01 15:23:24.956 BibleReader[6077:70b] !!! _NSLayoutTreeLineFragmentRectForGlyphAtIndex invalid glyph index 528
2013-12-01 15:23:24.957 BibleReader[6077:70b] !!! _NSGlyphTreeInvalidateGlyphsForCharacterRange invalid char range 1
2013-12-01 15:23:24.957 BibleReader[6077:70b] !!! _NSGlyphTreeInvalidateGlyphsForCharacterRange character count mismatch
2013-12-01 15:23:24.958 BibleReader[6077:70b] !!! _NSLayoutTreeLineFragmentRectForGlyphAtIndex invalid glyph index 4040
2013-12-01 15:23:24.959 BibleReader[6077:70b] !!! _NSGlyphTreeInvalidateGlyphsForCharacterRange invalid char range 1
Я много раз читал Руководство по текстовому программированию Apple и думаю, что понимаю, как устанавливается текстовая система, но понятия не имею, почему количество моих глифов превышает количество глифов...
Я создал gist для своего подкласса viewController и NSTextStorage, здесь и здесь соответственно.