The @ selector function in iOS transmits multiple parameters.
1. In general, use the self generator mselector: SEL withObject: id method.
[self performSelectorOnMainThread:@selector(testAA:) withObject:[NSArray arrayWithObjects:@1,@2, nil] waitUntilDone:NO];-(void) testAA:(NSArray*)data{ if (data==nil||data.count!=2) { return; } NSInteger num=[(NSString*)data[0] intValue]; NSInteger index=[data[1] intValue];}
2. nstinfo: stores the object for passing parameters in the userInfo Dictionary of NSTimer.
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; [dict setObject:oldView forKey:@oldView];[NSTimer scheduledTimerWithTimeInterval:0.0 target:self selector:@selector(onTimer:) userInfo:dict repeats:NO]; [dict release];- (void)onTimer:(NSTimer *)timer { UIView *oldView = [[timer userInfo] objectForKey:@oldView];}
3. UIButton class: Set tags to use
UIButton * markButton = [[UIButton alloc] initWithFrame: CGRectMake (280, 0, 30, 30)]; markButton. tag = @ parameter value; // here is the parameter value you want to pass [markButton addTarget: self action: @ selector (addMark :) forControlEvents: UIControlEventTouchUpInside];-(BOOL) addMark :( UIButton *) btn {NSLog (@%@, btn. tag];}