To pass parameter to an NSTimer, the parameter should be specified in the field userInfo of the timer. We can pass any number of parameters to NSTimer provided they are wrapped into a collection. Here i am passing two strings to the timer method by wrapping them into an NSMutableDictionary.
Create the timer.
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(myTimerMethod:) userInfo:dict repeats:NO];
[dict release];
implement the timer method.
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"1" forKey:@"a"];
[dict setObject:@"2" forKey:@"b"];
Create the timer.
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(myTimerMethod:) userInfo:dict repeats:NO];
[dict release];
implement the timer method.
-(void)myTimerMethod:(NSTimer*)myTimer
{
//cast the userInfo of the timer to a variable of object we assigned earlier.
NSMutableDictionary *dict = [myTimer userInfo];
NSLog(@”cur dict is:%@”,[dict objectForKey:@"a"]);
NSLog(@”cur dict is:%@”,dict);
}