我正在尝试使用FBUserSettingsViewController但每次尝试解除它时它都会崩溃。我使用以下代码来显示它:
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];
它显示正常,但是一旦我点击“返回”,我就会崩溃。崩溃是EXC_BAD_ACCESS:
#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中的一个错误。
答案 0 :(得分:2)
我发现了这个问题。 Facebook编码了他们的dealloc错误。
在FBUserSettingsViewController和FBViewController中有dealloc,例如:
- (void)dealloc {
[super dealloc];
[_profilePicture release];
[_connectedStateLabel release];
[_me release];
[_loginLogoutButton release];
[_permissions release];
[_backgroundImageView release];
[_bundle release];
}
这是错误的,[super dealloc]应该总是被认为是最后一次。该对象在尝试解除其成员之前就被拆除了。我切换了订单(最后是dealloc),现在正在运行。我将在此处提出一个错误。