Я использую TWTweetComposeViewController, когда он доступен, для отправки твитов из моего приложения для iOS. Я предварительно-заполняю контроллер представления шаблонным текстом, а затем позволяю пользователю изменять и отправлять его по своему усмотрению. Он отлично работает по большей части. В перегоне это выглядит так (, где body
указывает на действительныйNSString
):
if (NSClassFromString(@"TWTweetComposeViewController")) {
TWTweetComposeViewController *iOS5twitter = [[TWTweetComposeViewController alloc] init];
[iOS5twitter setInitialText:body];
iOS5twitter.completionHandler = ^(TWTweetComposeViewControllerResult result)
{
[self.viewController dismissViewControllerAnimated:YES completion:nil];
};
[self.viewController presentViewController:iOS5twitter animated:YES completion:nil];
[iOS5twitter release];
}
else {
/* Do something else when the framework is missing */
}
Теперь, если body
слишком длинное, т. е. более 140 символов, результирующее представление твита вообще не содержит текста, символов. обратный отсчет установлен на 140. В этом случае я мог бы ожидать усечения, хотя в справочнике по классам так или иначе не задокументировано, что происходит, когда исходный текст слишком длинный, но я могу принять, что я должен сделать усечение до максимальной длины твита перед переходом к setInitialText
.
Чего я не понимаю, так это того, что некоторые сообщения, которые короче 140 символов, также приводят к отображению пустого твита.
Первоначально я увидел то, что казалось совершенно корректной строкой с ошибкой в 139 символов. Я заметил, что укорачивание строки заставило его работать. Но после долгих экспериментов я также заметил, что замена URL-адреса, который случайно появился внутри текста, случайным текстом той же длины заставила его работать. Другими словами, сам URL-адрес вызывает проблему.
Поэтому я подумал, что, возможно, в URL-адресе, который я использовал, было что-то странное, но я свел его к этому. Этот работает :
NSString *body = @"............................................................................................................................................";
, а этот нет
NSString *body = @"............http://a........................................................................................................................";
Наблюдения:
[body length]
). Единственная разница заключается в наличии чего-то смутно похожего на URL-, встроенного в середину второго.Кто-нибудь когда-нибудь видел что-то подобное? Есть идеи, что происходит? Я что-то делаю не так, или просто сломался iOS Twitter Framework?