2011-08-22 142 views
1

我在我的應用程序fbconnection它工作正常,但當我註銷並重新登錄;這是應用程序崩潰的地方。這是FBSession.m文件。我需要幫助,這些我谷歌搜索,但無法找到任何有用的。任何人都瞭解或瞭解解決方案?感謝您的幫助。Facebook的連接崩潰應用程序

- (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"); 
} 

這是我設置委託

+0

發出一個堆棧跟蹤/錯誤消息,否則將很難確定發生了什麼...而「John Doe-1點」不可能有助於讓人們花時間在這方面。祝你好運:) –

+0

@vincent g我怎麼能把堆棧跟蹤? exc壞訪問沒有給任何錯誤消息msg –

回答

0

搜索項目並查找所有要放入代表的文件。從所有這些文件的dealloc方法中,將它們從_delegates中移除。

最有可能的是它崩潰,因爲您的委託對象(可能是先前彈出的viewController)被釋放,並且_delegates數組包含指向它的掛起指針。

+0

謝謝@ Ved for answer我檢查所有的代表和dealloc所有我想我必須找到另一種方式來使它或我只是想念它 –

+0

以及我想念它:)檢查兩次,現在它不是崩潰嗯感謝隊友 –

+0

你是歡迎,結帳ios 5 SDK自動引用計數。 __weak說明符在釋放對象時設置一個指向nil的指針。 – Ved

0

某處您在會議的委託設置這是越來越解除對象的地方。 (如果您向我們顯示代碼,請將代碼放在您設置代表的位置附近,我們可以看看到底發生了什麼問題。)

+0

當然,我要編輯我的消息在min minte –

+0

你可以檢查現在隊友這是我設置代理的地方 –

+0

仍然難以告​​訴什麼是錯的......是否有可能你的看法控制器正在其他地方發佈? – jtbandes