Я написал простой пользовательский распознаватель жестов, подобный этому:
@interface myRecognizer : UIGestureRecognizer {
NSString * _name;
CGPoint _startPoint;
}
- (void)resetMe;
- (void)reset;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
@end
и я инициировал это так:
myRecognizer *recognizer = [[myRecognizer alloc] initWithTarget:self action:@selector(didRecognize_myRecognizer:)];
[self.view addGestureRecognizer:recognizer];
[recognizer release];
пока все хорошо. и у меня есть мое действие здесь:
-(void)didRecognize_myRecognizer:(UIGestureRecognizer*)theRecognizer
{
//do stuff here
}
хорошо, пока все работает нормально, и все хорошо. Но вот мой вопрос, как я могу получить доступ к свойству _name, которое я создал в своем собственном жесте в // do do here arear? В принципе, я хотел бы сделать много жестов, но только один метод, используемый для действий, в зависимости от имени жеста. В режиме отладки я ясно вижу переменную _name, но если я пытаюсь написать код, подобный этому: theRecognizer._name, мне говорят, что в UIGEestureRecognizer отсутствует свойство «_name». если я изменю метод на это:
-(void)didRecognize_myRecognizer:(myRecognizer*)theRecognizer
{
//do stuff here
}
происходит то же самое. и это не было бы хорошо в любом случае, потому что я хочу использовать метод для всех распознавателей жестов, которые я делаю. я невежественный? покажи мне свет!