我已将基本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]){
把我的大脑放在这上面。我希望这只是我错过的一些模糊的设置。
提前致谢。
答案 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];
}];
}