2011-12-22 13 views
-1

私のアプリはCGRectIntersectsRectでクラッシュし、何をすべきか分かりません。
は、ここに私のコードです:(!それは答えなかった理由を、私はよく分からない)私のアプリはCGRectIntersectsRectでクラッシュします

if(CGRectIntersectsRect(player.frame,enemy.frame)) 
{ 
    loseViewController *controller = [[loseViewController alloc] initWithNibName:@"loseView" bundle:nil];           

    controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentModalViewController:controller animated:NO]; 
    [controller release]; 
} 
+0

'player'または' enemy'の割り当てが解除されている可能性がありますか? –

+0

@Vinceが言うように、おそらくそれらのオブジェクトの1つがdeallocされています。それを判断するのに役立つゾンビを有効にしてみてください。 Xcode 4でゾンビを有効にする方法については、http://stackoverflow.com/questions/5386160/how-to-enable-nszombie-in-xcodeを参照してください。 – mattjgalloway

答えて

1

ヴィンスさんのコメント@に拡大します。 。 。 。

あなたは、オブジェクトが割り当て解除された(あるいはその両方)を教えてくれなければならない

CGRect playerRect = player.frame; 
CGRect enemyRect = enemy.frame; 
if (CGRectIntersectsRect(playerRect, enemyRect)) { 

代わりの

if(CGRectIntersectsRect(player.frame,enemy.frame)) { 

をすれば、それはクラッシュしません。

+0

'CGRectIntersectsRect'にバグがない限り。 OK、非常にありそうもありませんが、まずゾンビやコードをチェックする価値があります。私はゾンビが個人的にアプローチするほうが好きです(一般的には、開発中は常にそうするべきです)。それと 'objc_exception_throw'にブレークポイントを持っています! – mattjgalloway

+0

それはクラッシュし続けますがエラーはありません – jacobmac13

+0

最初の行にブレークポイントを置いてステップスルーします。それは解放された 'player'か' enemy'かどうかを示すはずです。 CGRectIntersectsRectに行くなら、矩形があることを教えてください。 – deanWombourne

関連する問題