?????????????????ο???
???????????
????//??????? -(void)fun1 {          NSLog(@"click1"); } //?????? -(void)fun2 {     NSLog(@"click2"); }  //??????????????? -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {          if ([[touches anyObject] tapCount] == 1) {         [self performSelector:@selector(fun1) withObject:nil afterDelay:1];     }     else if ([[touches anyObject] tapCount] ==2)     {         [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(fun1) object:nil];         [self performSelector:@selector(fun2) withObject:nil afterDelay:1];     } }
????????????[???]
????int num = 0; -(void)fun1 {     [NSThread sleepForTimeInterval:1];     if(num == 1)     {         NSLog(@"click 1");     } } -(void)fun2 {     [NSThread sleepForTimeInterval:1];     if(num == 2)     {         NSLog(@"click 2");     } } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {     if([[touches anyObject] tapCount] == 1)     {         num = 1;         NSThread * thread = [[NSThread alloc] initWithTarget:self selector:@selector(fun1) object:nil];         [thread start];     }     else if([[touches anyObject] tapCount] == 2)     {         num = 2;         NSThread * thread = [[NSThread alloc] initWithTarget:self selector:@selector(fun2) object:nil];         [thread start];     } }
????????????[??????????????????????]
??????????е????????????????????ε????????
????- (void)viewDidLoad {     [super viewDidLoad];     //??????     UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(fun1)];     //??????       tap.numberOfTouchesRequired = 1;     //??????Σ??????1?????     tap.numberOfTapsRequired = 1;     [self.view addGestureRecognizer:tap];          UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(fun2)];     tap2.numberOfTapsRequired = 2;     [self.view addGestureRecognizer:tap2];          //??????????? ????ε????     [tap requireGestureRecognizerToFail:tap2]; }