【发布时间】:2013-11-14 17:11:08
【问题描述】:
我正在尝试将文章标题和文章 URL 发布到 twitter,然后将应用程序的名称附加到推文的末尾。所以像
“如何种植仙人掌(通过@appname)”附加网址
我无法弄清楚如何平衡标题和 URL 的长度以确保推文不超过 140 个字符。因此,如果 URL 真的很长,请剪掉一些文章标题,使其不超过 140 个字符。
看着Twitter's guidelines for 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];
}
它基本上添加了 URL,然后通过循环 setInitialText: 方法构造推文的其余部分,直到它返回 YES,每次返回 NO 时将标题的长度减少 1,以便更接近到所需的长度。
但它永远不会返回 YES! 即使我知道它应该返回。我使用的一篇文章可能超过 140 个字符,因为标题长度为 105 个字符,URL 为 55,加上应用程序信用。所以理论上应该可以把标题缩短,然后加起来就好了,但从来没有发生过。
那么发生了什么?如何使用SLComposeViewController 完成链接附件?
【问题讨论】:
-
我在模拟器和 iPhone 5S 上运行了您的示例项目,在两种情况下(动画运行时)Xcode 都报告了 0% CPU。也许您需要重新启动某些东西(Xcode、设备、分机)?
-
看来这是一个错误:openradar.appspot.com/14273967
标签: ios objective-c twitter slcomposeviewcontroller