2014-12-21 1 views
0

я не знаю, если это возможно ... У меня есть этот код в touchesEnded:Как я могу отменить код в touchesEnded когда touchesBegan начинается снова

[self performSelector:@selector(GameOver) withObject:nil afterDelay:3]; 

Однако, если вы еще раз коснуться экрана до 3 секунд, я хочу отменить вызов GameOver. Любая идея, как я могу это сделать.

В touchesBegan, я пытался что-то вроде этого:

[NSObject cancelPreviousPerformRequestsWithTarget:self 
             selector:@selector(touchesEnded:withEvent:) 
              object:nil]; 

Это не сработало.

+0

Разве это не тот же вопрос задавали раньше? http://stackoverflow.com/questions/27585523/how-to-call-gameover-after-3-second-unless-touchesbegan-again – matt

+0

yea haha ​​Я просто хотел переписать его, потому что решил, что хочу сделать отдельный подход ... Я удалил это. – Alex

ответ

0

Ваше значение selector неверно в вашем звонке cancelPreviousPerformRequestsWithTarget, вот и все. Если исходный селектор в performSelector был GameOver, то, очевидно, запрос выполнения, который вы отменяете, должен быть указан как GameOver.

Это совершенно ясно из документации: https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/index.html#//apple_ref/occ/clm/NSObject/cancelPreviousPerformRequestsWithTarget:selector:object:

+0

И, пожалуйста, не называйте метод 'GameOver' с такой большой буквы, всегда, хорошо? Это просто раздражает лягушку. – matt

+0

Большое вам спасибо. Это исправило это! Извините за мое кодирование, я немного новичок в этом. – Alex

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