我在我的应用中使用用户选择的文字和链接呈现iOS推特共享表(iOS 6上的SLComposeViewController
,iOS 5上的TWTweetComposeViewController
)。如果文字太长,我会截断它:
NSString *text = [self getSelectedText];
NSString *myLink = [self getLink];
SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[controller addURL:[NSURL urlWithString:myLink]];
while (![controller setInitialText:text] && text.length > 10)
{
text = [text substringToIndex:text.length - 5];
}
[self presentViewController:controller animated:YES completion:NULL];
当我这样做时,字符计数搞砸了。 setInitialText
在我达到预期长度之前返回YES
,并且共享表显示溢出文本。例如,如果链接长度为35个字符,则在递减几次后,共享表接受长度为117的字符串。 117 + 35 = 152(12以上),但是共享表显示9个结束。
我使用此API是错误的,还是字符数中存在错误? Twitter的开发网站上的This article似乎表明存在问题,但已经超过一年了。
编辑:如果我手动将链接附加到文本末尾而不是使用addURL
方法,结果是一样的。
答案 0 :(得分:0)
length
NSString
方法对组合字符序列的限制可能会影响您的搜索结果。
返回的数字包括组合字符序列的各个字符,因此您无法使用此方法来确定字符串在打印时是否可见或显示的时间长度。