Я использую TTTAttributedLabel, чтобы применить форматирование к тексту, но, похоже, он разбился, потому что я пытаюсь применить форматирование к диапазону, который включает emoji. Пример:Текстовая строка с EMOJI, вызывающая проблемы с NSRange
NSString *text = @"@user1234 #hashtag"; // text.length reported as 22 by NSLog as each emoji is 2 chars in length
cell.textLabel.text = text;
int length = 8;
int start = 13;
NSRange *range = NSMakeRange(start, length);
if (!NSEqualRanges(range, NSMakeRange(NSNotFound, 0))) {
// apply formatting to TTTAttributedLabel
[cell.textLabel addLinkToURL:[NSURL URLWithString:[NSString stringWithFormat:@"someaction://hashtag/%@", [cell.textLabel.text substringWithRange:range]]] withRange:range];
}
Примечание: Я передал значения NSRange из API, а также текстовую строку.
В приведенном выше примере я пытаюсь применить форматирование к #hashtag. Обычно это работает нормально, но поскольку у меня есть emoji, участвующий в этой строке, я считаю, что выбранный диапазон пытается отформатировать emoji, поскольку они на самом деле являются значениями UTF, которые в TTTAttributedLabel приводят к сбою (он фактически зависает без сбоев, но. ..)
Как ни странно, это работает отлично, если есть 1 смайликов, но перерывы, если есть 2.
Может кто-нибудь помочь мне понять, что здесь делать?
Это было бы легче диагностировать, если бы вы указали код, который используете для применения форматирования, и конкретно, какая строка кода «зависает». Ни один из приведенных здесь кодов не ссылается на всю строку. В идеале вы должны иметь возможность создать очень короткую программу, которая демонстрирует проблему, чтобы другие могли ее воспроизвести. –
, добавленный выше, чтобы показать мне применение с использованием метода TTTAttributedLabel addLinkToUrl – mootymoots