我正在使用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