FBUserSettingsViewController在关闭时崩溃 [英] FBUserSettingsViewController crashes on dismiss

查看:85
本文介绍了FBUserSettingsViewController在关闭时崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用FBUserSettingsViewController,但是每次我尝试关闭它时,它都会崩溃.我使用以下代码来显示它:

I'm trying to use FBUserSettingsViewController but it's crashing every time I try to dismiss it. I use the following code to display it:

FBUserSettingsViewController *userSettings = [[FBUserSettingsViewController alloc] initWithNibName:nil bundle:nil];
userSettings.readPermissions = @[];
userSettings.publishPermissions = @[@"publish_actions"];
userSettings.defaultAudience = FBSessionDefaultAudienceEveryone;
userSettings.delegate = self;
[self.navigationController pushViewController:userSettings animated:YES];

它显示正常,但是一旦我按下"Back",我就会崩溃.崩溃是位于EXC_BAD_ACCESS,位于:

It displays fine, but as soon as I hit "Back" I get a crash. The crash is an EXC_BAD_ACCESS at:

#0  0x34ae85de in objc_msgSend ()
#1  0x00136916 in -[FBUserSettingsViewController dealloc] at /Users/jacl/src/release/ios-sdk/src/FBUserSettingsViewController.m:86
#2  0x389e29c8 in -[UINavigationController navigationTransitionView:didEndTransition:fromView:toView:] ()
#3  0x389e249e in -[UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:] ()
#4  0x38978a82 in -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] ()
#5  0x389ed8ac in -[UIViewAnimationState animationDidStop:finished:] ()
#6  0x331a22e0 in CA::Layer::run_animation_callbacks(void*) ()
#7  0x30fe45da in _dispatch_client_callout ()
#8  0x30fe7e44 in _dispatch_main_queue_callback_4CF ()
#9  0x388c31b0 in __CFRunLoopRun ()
#10 0x3883623c in CFRunLoopRunSpecific ()
#11 0x388360c8 in CFRunLoopRunInMode ()
#12 0x30a3233a in GSEventRunModal ()
#13 0x389b7288 in UIApplicationMain ()
#14 0x00003424 in main at SNIP

如果有人可以告诉我我搞砸了,那太好了,但这似乎是Facebook SDK中的错误.

If someone could tell me I messed something up, that would be great, but this looks like a bug in the Facebook SDK.

推荐答案

我发现了问题. Facebook编码了他们的dealloc错误.

I found the issue. Facebook coded their dealloc's wrong.

在FBUserSettingsViewController和FBViewController中,存在dealloc,例如:

In FBUserSettingsViewController and FBViewController there are dealloc's such as:

- (void)dealloc {
    [super dealloc];

    [_profilePicture release];
    [_connectedStateLabel release];
    [_me release];
    [_loginLogoutButton release];
    [_permissions release];
    [_backgroundImageView release];
    [_bundle release];
}

这是错误的,[super dealloc]应该总是被最后调用.在他们尝试取消分配其成员之前,该对象已被拆除.我切换了顺序(最后使用dealloc),现在可以正常工作了.我将为此提交一个错误.

This is wrong, [super dealloc] is supposed to always supposed to be called last. The object is being torn down before they try deallocating their members. I switched the order (with dealloc last) and it's now working. I'll be filing a bug on this.

这篇关于FBUserSettingsViewController在关闭时崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆