我正在使用TTTAttributedLabel将格式应用于文本,但它似乎崩溃,因为我试图将格式应用于包含表情符号的范围。示例:带有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];
}
注意:我传递了来自API的NSRange值以及文本字符串。
在上面我试图应用格式#hashtag。通常这工作正常,但因为我有字符串涉及表情符号,我相信范围标识试图格式化表情符号,因为它们实际上是UTF值,它在TTTAttributedLabel导致崩溃(它实际上挂起没有崩溃,但是。 ..)
奇怪的是,如果有1周的表情符号,但休息,如果有2
谁能帮我找出在这里做什么工作好?
如果您要显示应用格式的代码,特别是代码“挂起”,这将更容易诊断。你在这里显示的代码都没有引用字符串。理想情况下,您应该能够创建一个非常短的程序来演示问题,以便其他人可以重现该问题。 – 2013-03-09 15:48:00
添加上面显示我申请使用TTTAttributedLabel addLinkToUrl方法 – mootymoots 2013-03-09 16:00:07