title: Running NSTimer in NSOperationQueue thread
body: <p>I'm trying to run an NSTimer on a thread set up by an NSOperationQueue</p>
  
  <pre><code>-(void)apiCallbackQueueManager:(NSString *)callid :(NSString *)service:(NSString *)action:(NSString *)data{
  
  SEL theSelector = @selector(apiCallbackQueueTimer: service: action: data:);
  NSMethodSignature * sig = [self methodSignatureForSelector:theSelector];
  NSInvocation * theInvocation = [NSInvocation invocationWithMethodSignature:sig];
  [theInvocation setTarget: self];
  [theInvocation setSelector: theSelector];
  [theInvocation setArgument: &amp;callid atIndex: 2];
  [theInvocation setArgument: &amp;service atIndex: 3];
  [theInvocation setArgument: &amp;action atIndex: 4];
  [theInvocation setArgument: &amp;data atIndex: 5];
  
  NSInvocationOperation* operation = [[NSInvocationOperation alloc] initWithInvocation:theInvocation];
  NSOperationQueue *apiQueue = [[NSOperationQueue alloc] init];
  [apiQueue addOperation:operation];
   }
  
  -(void)apiCallbackQueueTimer:(NSString *)arg1 service:(NSString *)arg2 action:(NSString *)arg3 data:(NSString *)arg4{
  apiTimer =  [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(apiCallbackMonitor:) userInfo:[NSDictionary dictionaryWithObjectsAndKeys:arg1, @"callid", arg2, @"service", arg3, @"action", arg4, @"data", nil] repeats:YES];
  [[NSRunLoop currentRunLoop] addTimer:apiTimer forMode:NSDefaultRunLoopMode];
   }
  
  -(void)apiCallbackMonitor:(NSTimer *)theTimer{
  //do something
   }
  </code></pre>
  
  <p>Setting up the invocation and running the NSOperationQueue seem to be OK and the apiCallbackQueueTimer method gets called with the right arguments. The problem is that I cannot get the NSTimer to run and so get to my apiCallbackMonitor method.</p>
  
  <p>I've read in the docs that NSTimer requires a run loop, so I've been trying to add one.</p>
  
  <p>Can anyone see what I'm doing wrong?</p>