2011-12-22 4 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가 말했듯이, 아마 그 객체 중 하나가 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'에 버그가없는 한. 확인, 가능성은 낮지 만 좀비 또는 코드를 먼저 확인하십시오. 내가 생각하기에 좀비가 개인적으로 접근하는 것을 선호한다. (일반적으로) 개발 중에 항상 있어야한다고 생각한다. objc_exception_throw에 중단 점이 있습니다! – mattjgalloway

+0

충돌을 계속하지만 오류가 발생하지 않습니다. – jacobmac13

+0

다음 첫 번째 줄에 중단 점을 놓고 단계별로 진행합니다. 즉, 플레이어 또는 적의 할당 취소 여부를 알려줍니다. CGRectIntersectsRect에 도착하면 직사각형이 있음을 우리에게 말해주십시오. – deanWombourne

관련 문제