【问题标题】:Deployment target vs. base SDK with TWTweetComposeViewController部署目标与带有 TWTweetComposeViewController 的基础 SDK
【发布时间】:2012-09-20 08:03:32
【问题描述】:

我已将我的基础 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]){

为此绞尽脑汁。我希望这只是我错过的一些晦涩的设置。

提前致谢。

【问题讨论】:

    标签: ios xcode ios6


    【解决方案1】:

    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 集成。

    【讨论】:

    • 是的,这就是问题所在。如果我更仔细地研究一下社交框架,我会为自己省去一些麻烦。谢谢。
    【解决方案2】:

    使用社交框架中包含的 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];
    }];
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-24
      • 2010-12-27
      • 2010-11-24
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 2012-11-12
      相关资源
      最近更新 更多