Facebook连接崩溃了应用程序

时间:2011-08-22 08:40:34

标签: iphone objective-c facebook exc-bad-access

我的应用程序中有fbconnection它工作正常,但是当我注销并重新登录时;这是应用程序崩溃的地方。这是FBSession.m文件。我需要帮助这些谷歌搜索,但找不到任何有用的东西。有人理解或了解解决方案吗?感谢您的帮助。

- (BOOL)resume {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
FBUID uid = [[defaults objectForKey:@"FBUserId"] longLongValue];
if (uid) {
    NSDate* expirationDate = [defaults objectForKey:@"FBSessionExpires"];
    if (!expirationDate || [expirationDate timeIntervalSinceNow] > 0) {
        _uid = uid;
        _sessionKey = [[defaults stringForKey:@"FBSessionKey"] copy];
        _sessionSecret = [[defaults stringForKey:@"FBSessionSecret"] copy];
        _expirationDate = [expirationDate retain];

        for (id<FBSessionDelegate> delegate in _delegates) {
            [delegate session:self didLogin:_uid];// This is the place that gives EXC_BAD_ACCESS
        }
        return YES;
    }
}
return NO;
}

编辑:

- (void) viewDidLoad {
[super viewDidLoad];

static NSString* kApiKey = @"605a4eee24bc4018210207cd152aaf0e";
static NSString* kApiSecret = @"4057291afc9430895461774a43881751";
_session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain];

// Load a previous session from disk if available.  Note this will call session:didLogin if a valid session exists.
[_session resume];
NSLog(@"resume");
}

这是我设置代表的地方

2 个答案:

答案 0 :(得分:0)

您正在将会话的委托设置为正在释放的对象。 (如果你向我们展示你设置委托的地方附近的代码,我们可以看看究竟出了什么问题。)

答案 1 :(得分:0)

搜索您的项目并查找您要放入代理的所有文件。从所有这些文件的dealloc方法中,将它们从_delegates中删除。

很可能它崩溃了,因为你的委托对象(可能是之前弹出的viewController)被释放,_delegates数组包含一个指向它的悬挂指针。