我有一個單獨的類的處理所有的遊戲中心的邏輯:塊= EXC_BAD_ACCESS
typedef void (^GameCenterCallbackFinishUpdating)();
- (void)getAllMatches:(GameCenterCallbackFinishUpdating)onComplete
{
[GKTurnBasedMatch loadMatchesWithCompletionHandler:^(NSArray *matches, NSError *error)
{
//Do stuff here...
onComplete();
}];
}
從另一個的viewController我用:
[[GameCenterHelper sharedHelper] getAllMatches:^{
[self.myTableView reloadData];
}];
它的偉大工程,當我在應用程序,但一旦我關閉應用程序(背景),然後再次啓動它,我得到:
onComplete(); ---- Thread 1: EXC_BAD_ACCESS (code=2, address=0xc)
我在做什麼錯在這裏?
'if(onComplete)onComplete();' – holex
That's works。謝謝!知道應用程序崩潰的原因仍然很有趣。 – BlackMouse
,因爲這些塊是對象,並且如果任何塊是'nil',並且您嘗試調用它們,則會使應用程序崩潰。在某個地方以某種方式,這個區塊在你叫它之前變成'nil'。 'if(...)'語句可以幫助您防止調用'nil'指針,所以應用程序不會崩潰。 – holex