title: NSTimer only running through once
body: <p>Below is the code that I've employed to activate a <code>NSTimer</code> that should run forever. However, when I actually run the code, the loop only executes once. This may have to do with the fact that the activation for the timer is nested in the success and failure operation of the <code>AFHTTPRequestOperation</code>, a part of the <code>AFNetworking</code> API. Why wouldn't it run through multiple times, and not just stop on the first run?</p>
  
  <pre><code>    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
      NSDictionary *parameters = @{@"size": size, @"city": city, @"delay": delay, @"evacuation": evacuation, @"evacuation_time": evacuation_time, @"serialNumber": serialNumber};
      manager.requestSerializer = [AFJSONRequestSerializer serializer];
      [manager.requestSerializer setValue:@"Content-Type" forHTTPHeaderField:@"application/json"];
      [manager POST:@"INSERT_WEBSITE_HERE" parameters:parameters
      success:^(AFHTTPRequestOperation *operation, id responseObject)
       {
           NSLog(@"%@", responseObject[@"identifier"]);
  
           _active.title = [NSString stringWithFormat:@"Activated"];
           _help.title = [NSString stringWithFormat:@"Cancel"];
  
           // start timer after authentication is given
           [self checkForAuthenticationTimerRun];
       }
      failure:^(AFHTTPRequestOperation *operation, NSError *error)
       {
           NSLog(@"Error: %@", error);
  
           // DELETE AFTER CONFIRMATION OF TEXT WORKING
           [self checkForAuthenticationTimerRun];
           // DELETE AFTER CONFIRMATION OF TEXT WORKING
  
           _active.enabled = YES;
           _active.title = [NSString stringWithFormat:@"Activate"];
  
  //         _seconds.hidden = YES;
  //         _secondsToAlert.hidden = YES;
  
  //         _directions.hidden = NO;
  //         _magnitudeDirectionsLabel.hidden = NO;
  //         _magnitudeSlider.hidden = NO;
  //         _delayDirectionsLabel.hidden = NO;
  //         _delaySlider.hidden = NO;
  //         _locationDirectionsLabel.hidden = NO;
  //         _locationDirectionsButton.hidden = NO;
  //         _evacuationDirectionsLabel.hidden = NO;
  //         _evacuationControl.hidden = NO;
  //         _evacuationTimerDirectionsLabel.hidden = NO;
  //         _evacuationTimerSlider.hidden = NO;
  //         _dataLabel.hidden = NO;
  //         _magnitudeDataLabel.hidden = NO;
  //         _locationDataLabel.hidden = NO;
  //         _delayDataLabel.hidden = NO;
  //         _evacuationDataLabel.hidden = NO;
  //         _evacuationTimerDataLabel.hidden = NO;
  //         _magnitudeLabel.hidden = NO;
  //         _locationLabel.hidden = NO;
  //         _delayLabel.hidden = NO;
  //         _evacuationLabel.hidden = NO;
  //         _evacuationTimerLabel.hidden = NO;
  
           UIAlertView *failureAlert = [[UIAlertView alloc]
                                        initWithTitle:@"Failure"
                                        message:@"The application failed to connect to the server."
                                        delegate:nil
                                        cancelButtonTitle:nil
                                        otherButtonTitles:@"Ok", nil];
  
           [failureAlert show];
       }];
  }
  
  - (void)checkForAuthenticationTimerRun
  {
      int delay = self-&gt;delayTime;
  
      _seconds.text = [NSString stringWithFormat:@"%d", delay];
      NSLog(@"%d", delay);
  
      delay = delay - 1;
  }
  
  - (void)checkForAuthenticationSetTimer
  {
      // runs through code every 1 second(s)
      missionCompleteTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(checkForAuthenticationTimerRun) userInfo:nil repeats:YES];
  }
  </code></pre>
  
  <p><strong>EDIT</strong>:
  For those of you asking, this is how I declared <code>missionCompleteTimer</code> in the <code>.h</code> file:</p>
  
  <pre><code>{
      NSTimer *missionCompleteTimer;
  }
  </code></pre>