1

我无法让社交框架在我的 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;
     }



 }];
4

1 回答 1

2

我只是将您的代码复制/粘贴到一个空白项目中并在我的 iPad 上成功运行,所以我不确定问题出在哪里,但您可以尝试以下几件事。

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

mySLComposerSheet = [[SLComposeViewController alloc] init];

mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

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

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

第三,也不太可能,但presentViewController由于您的间距和换行位置,您可能会遇到一些奇怪的不可见元素,从而导致参数出现问题。尝试重写该行,使其看起来像这样:

[self presentViewController:mySLComposerSheet animated:YES completion:nil];

站点说明,您NSString *output正在创建内存泄漏,除非它用于您未包含在代码中的其他内容。这一切都与您的原始帖子无关,实际上并未具体说明问题。如果您可以更具体,我可能会更有帮助。

于 2013-01-04T04:50:37.173 回答