使用TWTweetComposeViewController部署目标与基础SDK

时间:2012-09-20 08:03:33

标签: ios xcode ios6

我已将基本SDK设置为6.0,将部署目标设置为6.0。

当我构建时,我收到以下错误。 不推荐使用'TWTweetComposeViewController':首先在iOS 6.0中弃用

如果我将部署目标降低到5.1,它会毫无错误地编译。由于TWTweetComposeViewController“在iOS 5.0及更高版本中可用。”,这似乎与我的预期相反。

我会这样离开,但我也使用Social / Social.h,它只能在6.0及以上版本中使用,并且对5.1用户来说容易出错。

这是有问题的代码行:

if ([TWTweetComposeViewController canSendTweet]){

把我的大脑放在这上面。我希望这只是我错过的一些模糊的设置。

提前致谢。

2 个答案:

答案 0 :(得分:5)

不推荐使用TWTweetComposeViewController,因为对于iOS 6.0,有一个新的框架来处理所有名为Social.framework的社交互动。在那里,您可以找到类似的功能,通过SLComposeViewController发布推文。

要解决iOS6的问题,您需要根据支持的内容进行选择:

  • 支持iOS6及以上版本:只需使用SLComposeViewController即可。链接框架Social.framework并完成它。

  • 支持iOS 5.x及更高版本:需要更多工作。首先需要检查SLComposeViewController是否存在(所以你在iOS 6.0中),然后使用它并呈现它,否则使用旧版iOS的TWTweetComposeViewController。您还需要将框架Social.framework链接为可选。

作为旁注,如果您仅支持iOS 6,您可以使用相同的控制器免费发布到Facebook,因此请考虑使用Facebook集成。

答案 1 :(得分:3)

而不是使用社交框架中包含的SLComposeViewController而不是TWTweetComposeViewController

- (IBAction)SendTweet:(id)sender {
   if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
 {
    mySLComposerSheet = [SLComposeViewController         composeViewControllerForServiceType:SLServiceTypeTwitter];
    [mySLComposerSheet setInitialText:[NSString stringWithFormat:@" THIS IS AN EXAMPLE",mySLComposerSheet.serviceType]];
    [mySLComposerSheet addImage:[UIImage imageNamed:@"image.png"]];
    [mySLComposerSheet addURL:[NSURL URLWithString:@"http://www.StackOverflow.com/"]];
    [self presentViewController:mySLComposerSheet animated:YES completion:nil];
  }
   [mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
    NSLog(@"dfsdf");
    NSString *output;
    switch (result) {
        case SLComposeViewControllerResultCancelled:
            output = @"ACtionCancelled";
            break;
        case SLComposeViewControllerResultDone:
            output = @"Post Successfull";
            [self dismissViewControllerAnimated:YES completion:nil];
            break;
        default:
            break;
    }
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Twitter Message" message:output delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [alert show];
}];
}