3

我正在我的应用程序中展示 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方法,结果是相同的。

4

1 回答 1

0

length方法对NSString组合字符序列有限制,这可能会影响您的结果。

返回的数字包括组合字符序列的单个字符,因此您无法使用此方法确定字符串在打印时是否可见或出现多长时间。

于 2013-07-15T17:21:24.250 回答