Dou*_*ith 8 twitter objective-c ios slcomposeviewcontroller
我正在尝试将文章标题和文章URL发布到Twitter,然后将应用程序的名称附加到推文的末尾.所以像
"如何种植仙人掌(通过@appname)" 附加网址
我无法弄清楚如何平衡标题和URL的长度,以确保推文不超过140个字符.因此,如果URL非常长,请删除一些文章标题,以便它可以低于140个字符.
看看Twitter的指导原则,SLComposeViewController他们说明了这一部分:
注意,设置初始内容的方法用布尔值响应; 这允许您(开发人员)不必担心正在初始化的推文正文中的当前字符数.如果方法返回YES,则有足够的空间来添加内容.如果方法返回NO,则您尝试添加的内容将导致Tweet超过140个字符.字符计数的逻辑也使t.co URL包装所需的当前字符数生效.
(来自"代码示例"部分.)
鉴于此,我编写了以下代码来构建推文并平衡URL长度和文章长度:
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
SLComposeViewController *twitterViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[twitterViewController addURL:[NSURL URLWithString:self.article.url]];
NSString *titleToShare = self.article.title;
while ([twitterViewController setInitialText:[NSString stringWithFormat:@"%@ (via @SyllableApp)", titleToShare]]) {
titleToShare = [titleToShare substringToIndex:titleToShare.length - 1];
}
[self presentViewController:twitterViewController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
基本上添加URL然后通过循环遍历setInitialText:方法来构造推文的其余部分直到它返回YES,每次返回时将标题的长度减少1 NO以便接近所需的长度.
但它永远不会返回YES!即使我知道它应该.我正在使用一篇文章,它可能超过140个字符,因为标题长度为105个字符,URL为55,加上应用信用额度.所以它理论上应该能够缩短标题,然后加上它,但它永远不会发生.
发生什么了?如何完成链接附件SLComposeViewController?
while ([twitterViewController setInitialText:[NSString stringWithFormat:@"%@ (via @SyllableApp)", titleToShare]])
=>
while (![twitterViewController setInitialText:[NSString stringWithFormat:@"%@ (via @SyllableApp)", titleToShare]])
有一个!状况缺失,因此您可以在合适时缩短帖子,而不是在帖子太长时缩短;)