CTFramesetterCreateWithAttributedString EXC_BAD_ACCESS - PullRequest
0 голосов
/ 15 декабря 2011

Я использую основной текст для рисования sth, и он получает EXC_BAD_ACCESS проблему в случае


CTFramesetterCreateWithAttributedString((CFAttributedStringRef)immutableContent);

Я также печатаю immutableContent, что NSAttributedString: enter image description here

Проблема здесь в том, что когда это происходит, я не знаю, как его отладить. Я думаю, что что-то не так с NSAttributedString, но я не знаю, как это исправить. Кроме того, метод, использованный для создания NSAttributedString, работает в другом проекте. Так почему я в замешательстве ~~

спасибо!

Ответы [ 2 ]

0 голосов
/ 23 декабря 2011

В нашем случае происходит то, что другой поток изменяет атрибуты строки во время установки фрейма. Одним из подходов является SAKrisT, который заключается в работе над копией. Другой - сериализовать доступ к строке CTFramesetterCreateWithAttributedString call.

0 голосов
/ 15 декабря 2011

мой код и отлично работает

NSMutableAttributedString* attrStrWithLinks = [self.attributedText mutableCopy];
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attrStrWithLinks);

self.attributedText - NSAttributedString

...