我在我的应用中使用用户选择的文本和链接来展示iOS Twitter共享工具栏(在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开发网站上的这篇文章似乎表明存在问题,但已经过去一年了。
编辑:如果手动将链接附加到文本末尾而不使用
addURL
方法,结果相同。