Да, еще один вопрос новичка - вопрос о процессе / рабочем процессе.Пожалуйста, будьте терпеливы.
У меня есть объект NSTimer, таймер, созданный в одном методе methA и передаваемый в другой метод methB, где он используется для управления некоторой обработкой.Оба метода находятся в одном классе.
У меня есть методы touchesBegin и touchesEnded для захвата пользовательского ввода.Эти методы находятся в одном классе с моими двумя предыдущими методами - metaA и methB.Когда пользователь «нажимает» на мой экран, мне нужно прекратить обработку
Когда мой метод touchesBegin вызывается одним касанием, я предполагаю, что все, что мне нужно сделать, это отправить сообщение другим моим методам, methA / methBи скажите им, чтобы они прекратили обработку.Я предполагаю, что все, что мне нужно сделать, это сделать недействительным таймер, который передается моему методу "обработки", то есть methB.
Это звучит правильно?Я включил мои четыре метода touchBegin, methA и methB.Любой вклад приветствуется.
- (void) methA
{
stepValue = 0;
animationBuild = YES;
float duration = [[[Config shared] valueForKey:@"animation.val.step_duration"] floatValue];
[NSTimer scheduledTimerWithTimeInterval:duration target:self selector:@selector(stepValue:) userInfo:nil repeats:YES];
}
- (void) methB:(NSTimer *) timer
{
if (animationBuild)
{
// animation logic/processing
}
// Next step
stepValue++;
if (stepValue == GROUP_SIZE)
{
[timer invalidate];
[self animateShowMessage];
}
}
- (void) touchesBegan:(NSSet *) touches withEvent:(UIEvent *) event
{
if (modalDialog)
{
return;
}
if (currentTouch == nil)
{
UITouch *touch = [[touches allObjects] objectAtIndex:0];
currentTouch = [touch retain];
}
}
- (void) touchesEnded:(NSSet *) touches withEvent:(UIEvent *) event
{
if (modalDialog)
{
return;
}
UITouch *touch = [[touches allObjects] objectAtIndex:0];
if ((touch != nil) && (touch == currentTouch))
{
CGPoint touchPoint = [touch locationInView:self.view];
else if ((CGRectContainsPoint(visRect[[Process shared].procType], point)) && (touch.tapCount == 2))
{
// processing
}
else
{
// Start a new processing
[self startNew];
}
[currentTouch release];
currentTouch = nil;
}
}