如何使用TWRequest for iOS 5和iOS6

问题描述:

我正在开发支持iOS 5和6的iPhone应用程序。我想在Twitter上分享图片,并且我发现的方式是使用iOS 5中引入的Twitter框架。如何使用TWRequest for iOS 5和iOS6

但是TWRequest在iOS 6中被弃用,并被社会框架中的SLRequest取代,这在iOS 5中是不可用的。那么,我该如何解决这个问题?由于TWRequest在iOS 6中被弃用,并且iOS 5中不支持SLRequest。 任何线索。 ..

+0

你可以看看这个[链接](http://www.techotopia.com/index.php/IPhone_iOS_6_Facebook_and_Twitter_Integration_using_SLRequest) – Zen 2013-02-27 07:01:32

+0

但这只适用于iOS 6. iOS 5支持如何? – 2013-02-27 07:12:06

+0

对于iOS5,您可以使用'TWTweetComposeViewController'以模态方式呈现预构建视图。 – Zen 2013-02-27 07:38:42

如果您打算使用预编译的SLComposeViewController来呈现在Twitter上共享的模式视图,您可以使用类似这样的东西

//Check for Social Framework availability (iOS 6) 
if(NSClassFromString(@"SLComposeViewController") != nil){ 

    if([SLComposeViewController instanceMethodForSelector:@selector(isAvailableForServiceType)] != nil) 
    { 
     if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) 
     { 
      NSLog(@"service available"); 
      SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 
      [composeViewController setInitialText:@"Testing Continues"]; 
      [composeViewController addImage:[UIImage imageNamed:@"test.png"]]; 
      [self presentViewController:composeViewController animated:YES completion:nil]; 
     } 
     else 
     { 
      NSLog(@"service not available!"); 
     } 
    } 
} 

else{ 
// For TWTweetComposeViewController (iOS 5) 
    if ([TWTweetComposeViewController canSendTweet]) { 
     TWTweetComposeViewController *tweetVC = [[TWTweetComposeViewController alloc] init]; 
     [self presentModalViewController:tweetVC animated:YES]; 
     [tweetVC setInitialText:@"testing app"]; 
    } 
} 

,如果你想创建自己的要求,在Twitter上分享否则,在设备上管理用户帐户后,创建一个SLRequest只要你想

NSDictionary *message = @{@"status": @”Test message”}; 
NSURL *requestURL = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/update.json"]; 

SLRequest *postRequest = [SLRequest 
      requestForServiceType:SLServiceTypeTwitter 
        requestMethod:SLRequestMethodPOST 
           URL:requestURL 
         parameters:message];   
+0

那么在这种情况下,这意味着我必须显式检查即 如果(iOS5中) { 做到这一点 } 否则,如果(iOS6的) { 做到这一点 } – 2013-02-27 07:50:18

+1

@abdus:相当接近; Zen的代码测试功能而不是操作系统版本,但效果是一样的:它可以使用6的视图控制器,否则使用6。唯一的选择是使用两者都可用的,并且无条件地弃用其中之一。 – 2013-02-27 09:56:17