何らかの理由で、実行中のブロック内で CCLayer サブクラスを呼び出すと、コードが EXE_BAD_ACCESS でクラッシュするように見えます。
[[DataModel sharedInstance] saveWithSuccess:^{
CCAlertView *alertView = [[CCAlertView alloc] initWithMessage:@"Unsaved Changes" detail:@"You have unsaved changes, would you like to save?" andButtons:@[@"Save", @"Continue", @"Cancel"]];
alertView.delegate = (id <CCAlertViewDelegate>)self;
[self.controls addChild:alertView z:100 tag:kAlertViewTag];
} failure:^{
CCAlertView *alertView = [[CCAlertView alloc] initWithMessage:@"Save Failed" detail:nil andButtons:@[@"Okay"]];
alertView.delegate = (id <CCAlertViewDelegate>)self;
[self.controls addChild:alertView z:100 tag:kAlertViewTag];
}];
何が間違っているのか正確にはわかりませんが、それを捨てているのはブロックですか? 他の場所のコードでこの行を使用していますが、機能します。