FBUserSettingsViewController仅在ios 6上崩溃时崩溃

时间:2012-12-30 07:49:59

标签: iphone objective-c facebook ios6

我正在尝试使用FBUserSettingsViewController,但每次尝试解除它时它都会崩溃。我使用以下代码来显示它:

PS:它只会在ios 6上崩溃并出现此错误:

// [FBUserSettingsViewController dealloc];

FBUserSettingsViewController *a =[[FBUserSettingsViewController alloc] init];
[a setDefaultAudience:FBSessionDefaultAudienceEveryone];
[a setDelegate:self];
[a setPublishPermissions:     [NSArray arrayWithObject:@"publish_actions"]];
[nav presentViewController:a animated:NO completion:nil];

这是为了解雇它:

- (void)facebookViewControllerDoneWasPressed:(id)sender{

    _facebook = [[Facebook alloc]
                 initWithAppId:@"176237615850674"
                 andDelegate:self];

    // Store the Facebook session information
    _facebook.accessToken = FBSession.activeSession.accessToken;
    _facebook.expirationDate = FBSession.activeSession.expirationDate;

    if ([nav respondsToSelector:@selector(dismissViewControllerAnimated:completion:)])
        [nav dismissViewControllerAnimated:YES completion:nil];
    else [nav dismissModalViewControllerAnimated:YES];

}

关于这个话题还有另一个问题,但那里没有任何答案

The other Question

1 个答案:

答案 0 :(得分:0)

Facebook iOS SDK中存在错误。如果你看一下FBUserSettingsViewController源代码中的dealloc方法,你会发现它们在释放ivars之前调用[super dealloc]。在FBViewController的dealloc中出现相同的错误。

我修复了这两个错误并将我的更改推送到了GitHub上的facebook-ios-sdk的一个分支。看看:https://github.com/Tafkadasoh/facebook-ios-sdk

要解决您的问题,只需克隆此fork并从命令行调用“scripts / build_framework.sh”即可。之后,您将在“build / FacebookSDK.framework”文件夹中找到该框架的固定版本。修复了我的崩溃。