我正在我的应用程序中展示 iOS Twitter 共享表(SLComposeViewController
在 iOS 6 上,TWTweetComposeViewController
在 iOS 5 上),其中包含用户选择的文本和链接。如果文本太长,我会截断它:
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
方法,结果是相同的。