坚持在ios设备上使用社交框架

时间:2013-01-04 04:17:22

标签: ios6 social-framework slcomposeviewcontroller

我无法让社交框架在我的ios设备上正常运行,但它在iOS模拟器中完美运行但在我的iPad上无法运行,任何人都可以建议我可能出错的地方。提前谢谢。

- (IBAction)sharefb:(id)sender {

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {


    mySLComposerSheet = [[SLComposeViewController alloc] init];

    mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    [mySLComposerSheet setInitialText:@"Share this app with your friends"];

    [mySLComposerSheet addImage: [UIImage imageNamed:@"icon2.png"]];
    [self presentViewController:  mySLComposerSheet animated:
     YES completion:nil];

     }

[mySLComposerSheet setCompletionHandler:^
 (SLComposeViewControllerResult result) {


     NSString *output = [[NSString alloc] init];


     switch (result) {
         case SLComposeViewControllerResultCancelled:
             output = @"Post Cancelled";
             break;
           case SLComposeViewControllerResultDone:
             output = @"Posted successfully";
             break;

         default:
             break;
     }



 }];

1 个答案:

答案 0 :(得分:2)

我只是将您的代码复制/粘贴到一个空白项目中并成功地在我的iPad上运行,所以我不确定问题是什么,但这里有一些你可以尝试的事情。

首先,在代码中使用这两行:

mySLComposerSheet = [[SLComposeViewController alloc] init];

mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

composeViewControllerForServiceType之前调用alloc / init是不必要的,也是不明智的,因为presentViewController已经返回了一个SLComposeViewController对象。省略这两行中的第一行可以解决问题。

其次,您确定项目中存在“icon2.png”吗?这不应该导致问题,但是发生了更疯狂的事情。

第三,也不太可能,但由于你的间距和换行位置,你可能会因为[self presentViewController:mySLComposerSheet animated:YES completion:nil]; 的参数而产生一些奇怪的隐形。尝试重写该行,如下所示:

NSString *output

网站注意,您的{{1}}正在创建内存泄漏,除非它用于您未在代码中包含的其他内容。这完全取决于你原来的帖子,它实际上没有指明问题。如果你可以更具体,我可能会更有帮助。