title: Perform method after delay and cancel it
body: <p>I want to to perform method after 2.0 seconds, but i want to be able to cancel it if before the 5 seconds if another call made , but i noticed that the <code>cancelPreviousPerformRequestsWithTarget</code> send object nil and performSelector send object <code>NSString</code>.</p>
  
  <p>Can it make a problems?</p>
  
  <pre><code>-(void)startRecord:(NSString*)name {
      if (self.needToStartRecording) {
          //Cancel last call
          [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(startRecordAfterDelay:) object:nil];
      }
      self.needToStartRecording = YES;
  
      [self performSelector:@selector(startRecordAfterDelay:) withObject:name afterDelay:5.0];
  }
  
  -(void)startRecordAfterDelay:(NSString*)name {
      self.needToStartRecording = NO;
  
      //Do My Stuff
  }
  </code></pre>