- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经实现了以下代码来进行 Twitter 分享。在我的代码中,我尝试针对 iOS 5 进行测试,如果这不起作用,我将返回到使用 ShareKit 的 Twitter 代码进行共享的旧方法。
我向一位同事展示了代码,他建议我的代码可能存在缺陷,我需要做两件事:
有人可以解释一下什么是正确的运行时检查吗?为什么是薄弱环节?
NSString *text = [NSString stringWithFormat:@"@Awesome chart: %@", self.titleLabel.text];
if ([TWTweetComposeViewController canSendTweet])
{
TWTweetComposeViewController *tweetComposeViewController = [[TWTweetComposeViewController alloc] init];
[tweetComposeViewController setInitialText:text];
[tweetComposeViewController addImage:image];
[tweetComposeViewController setCompletionHandler:^(TWTweetComposeViewControllerResult result){
dispatch_async(dispatch_get_main_queue(), ^{
[self dismissModalViewControllerAnimated:YES];
if (result == TWTweetComposeViewControllerResultDone)
{
NSLog(@"iOS 5 onwards Twitter share complete");
}
});
}];
[self presentViewController:tweetComposeViewController
animated:YES
completion:^{ }];
}
else
{
SHKItem *item = [SHKItem image:image title:text];
// Share the message.
[SHKTwitter shareItem:item];
NSLog(@"Device does not support Twitter library");
}
}
最佳答案
弱链接只是意味着框架不需要安装在设备上。或者换句话说,当您向项目添加框架时,应用程序将要求该框架位于设备上。因此,如果您需要一个框架,但它不存在,那么该应用程序将会崩溃。在您的情况下,如果您希望该应用程序在 iOS 5 之前的 iOS 版本(即 iOS 4.x)上运行,则需要弱链接 twitter 框架。
正确的运行时检查意味着您应该将应用程序加载到您的设备上(运行 iOS 5 或更高版本)并测试应用程序的 Twitter 功能。如果它崩溃了,那么你就知道你遇到了问题。
我浏览了您的代码,一切看起来都很好。我没有通过我的编译器运行它,所以我不能说语法错误等等。我要做的一个改变是:
if ([TWTweetComposeViewController canSendTweet])
到
Class twClass = NSClassFromString(@"TWTweetComposeViewController");
if (!twClass) // Framework not available, older iOS
return;
我之所以使用它,是因为它从字面上检查框架是否在该设备上,而 canSendTweet
检查用户是否已登录。所以我不想让用户感到困惑使用 iOS 5 的设备不支持 Twitter 的用户登录。
如果您需要更多帮助,请告诉我。
关于iphone - 如何改进 iOS 中的 TWTweetComposeViewController 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291345/
当我展示 TWTweetComposeViewController 时,我可以在窗口中滚动消息,但无法编辑文本。 这是我用来展示 TWTweetComposeViewController 的代码: T
我正在尝试将 Twitter 集成到 iOS5 应用程序中。在我的应用程序中使用 Twitter 框架,我可以在后台发布消息吗?我知道使用 TWTweetComposeViewController,它
当我在 TWTweetComposeViewController 中添加指向推文的链接时,我看到正确附加的链接: 但与我在 Safari 中这样做时不同的是,该链接不会像 Safari(或 Youtu
我正在使用 TWTweetComposeViewController(如果可用)从我的 iOS 应用程序内部发送推文。我用样板文本预先填充 View Controller ,然后让用户自行修改和发送。
我想在 Twitter 墙上发帖,但不希望用户可以编辑正在发布的消息。 所以有两种可能性可以做到这一点 1) 我可以使 TWTweetComposeViewController 文本字段不可编辑。 2
我想从我的应用程序添加推文发送功能。我使用 TWTweetComposeViewController 创建 Controller 并以模态方式显示它。 设备或模拟器设置了多个帐户,但撰写 Contro
好的,这是我的应用程序中的第一个地方,我正在为任何东西使用 block ,所以我需要检查一些设置或 Xcode 设置吗?在我看来,这似乎是 block 的简单使用,没有做任何花哨的事情,但它在 iOS
我想直接从我的 iPhone 应用程序发送推文而不显示 TWTweetComposeViewController 弹出 我也想得到所有的追随者有没有办法从 ios5 上的 twitter 框架做到这一
我正在使用 TWTweetComposeViewController,当我将初始文本设置为屏幕标题时,文本光标出现在话题标签之后,我想让它出现在话题标签之前。有没有办法做类似 cursor=(0,0)
我在我的应用程序中使用 TWTweetComposeViewController。如果用户在撰写推文对话框处于事件状态时锁定设备(或切换应用程序),然后将其解锁,撰写推文对话框将自动取消(TWTwee
在TWTweetComposeViewController的UI中,alert的顶部有两个按钮,cancel和send,即使我手机的语言设置为英语以外的其他语言,这两个按钮仍然是英语。 我试图找到更改
我在我的应用程序中通过 TWTweetComposeViewController 使用 Twitter 共享。当我尝试发送具有相同内容的推文时,我收到一条错误消息“推文,...是重复的,无法发送”。这
是否可以使用 TWTweetComposeViewController 上传动画 GIF? 我用 UIImage 试了一下,它只上传了第一帧。这是有道理的,因为 UIImage 不支持动画 GIF。
我已将我的基础 SDK 设置为 6.0,并将我的部署目标设置为 6.0。 当我构建时,出现以下错误。'TWTweetComposeViewController' 已弃用:首先在 iOS 6.0 中弃用
我正在尝试使用 TWTweetComposeViewController 在 iOS 5 中执行一条简单的推文。如果有一个文本字段,它就可以工作,但如何从 3 个 UITextField 创建一串文本
我想从我的应用程序中使用图像发送推文,但我想将图像托管在我的服务器上并让推文指向该图像。 我不想重新实现 TWTweetComposeViewController 的整个 UI(我知道我可以通过仅针对
如果用户在其设备上设置了 >1 个 Twitter 帐户,我希望能够控制哪个帐户用户名是 TWTweetComposeViewController 中 From 字段的默认值。 目前它似乎默认为系统上
在 iOS 中是否存在具有与 TWTweetComposeViewController 等效功能的 Facebook?也就是说,用户只需实现一个简单的模态视图 Controller 就可以轻松地将消息
我在我的应用程序中使用用户选择的文本和链接展示 iOS Twitter 分享表(iOS 6 上的 SLComposeViewController,iOS 5 上的 TWTweetComposeView
我已经实现了以下代码来进行 Twitter 分享。在我的代码中,我尝试针对 iOS 5 进行测试,如果这不起作用,我将返回到使用 ShareKit 的 Twitter 代码进行共享的旧方法。 我向一位
我是一名优秀的程序员,十分优秀!