2011-12-22 3 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

«игрок» или «враг», возможно, был освобожден, не могли бы вы это проверить? –

+0

Как говорит @Vince, вероятно, один из этих объектов был dealloc'd. Попробуйте включить зомби, которые помогут с определением этого. См. Http://stackoverflow.com/questions/5386160/how-to-enable-nszombie-in-xcode для включения зомби в Xcode 4. – 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

он продолжает сбой, но theres нет ошибок – jacobmac13

+0

Затем поставьте точку останова на первой строке и пройдите - это должно сказать вам, что это «игрок» или «враг», который был отменен. Если вы дойдете до CGRectIntersectsRect, тогда скажите нам, что это прямые. – deanWombourne

Смежные вопросы