ユーザーが選択したテキストとリンクを使用して、アプリでiOS Twitter 共有シート ( SLComposeViewController
iOS 6、 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 の開発者サイトのこの記事は、問題があることを示唆しているようですが、それは 1 年以上前のものです。
addURL
編集:メソッドを使用する代わりに、リンクをテキストの最後に手動で追加しても、結果は同じです。