You need a run loop to make your timer work, something like this:
- (void)main
{
// your code
yourTimer = ... // create your timer
NSRunLoop* runLoop = [NSRunLoop currentRunLoop];
[runLoop addTimer:yourTimer forMode:NSRunLoopCommonModes];
[runLoop run];
}
Oh, and, i guess it's better to set up your own autorelease pool in main.