iOS6 Facebook:如果用户没有配置Facebook怎么办?

Nic*_*ard 15 cocoa-touch facebook objective-c ios ios6

我正在使用新的Facebook集成,iOS6如下所示:

SLComposeViewController *fbController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
    SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){

        [fbController dismissViewControllerAnimated:YES completion:nil];

        switch(result){
            case SLComposeViewControllerResultCancelled:
            default:
            {
                NSLog(@"Cancelled.....");

            }
                break;
            case SLComposeViewControllerResultDone:
            {
                NSLog(@"Posted....");
            }
                break;
        }};

    //[fbController addImage:[UIImage imageNamed:@"1.jpg"]];
    [fbController setInitialText:@"Test message"];
    [fbController addURL:[NSURL URLWithString:self.asset.url]];
    [fbController setCompletionHandler:completionHandler];
    [self presentViewController:fbController animated:YES completion:nil];
} else {
    NSLog(@"no facebook setup");
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是,我正在测试它而没有登录Facebook,我得到的只是日志消息.

**奇怪的是,我在模拟器中得到了对话框,但不是设备!**

如何向用户显示告知他们需要登录Facebook的提醒?我已经看过系统警报的屏幕截图,但由于某种原因我没有得到它.我做错了什么?

Nic*_*ard 28

删除检查以[SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]解决我的问题.

  • 根据SLComposeViewController的[文档](http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Reference/SLComposeViewController_Class/Reference/Reference.html),isAvailableForServiceType"返回一个布尔值,指示是否**服务可访问**和**至少设置一个帐户**...要使帐户可用,用户必须在设备设置中登录社交服务." 这样可以解释为什么删除它对你有用.希望有所帮助! (5认同)

EPa*_*_Ed 7

[SLComposeViewController isAvailableForServiceType:]即使您没有在那里设置帐户,它似乎在模拟器中返回true.