1、一般情况,使用 self performSelector:SEL withObject:id方法
1 2 3 4 5 6 7 8 9 10 11 | [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、NSTimer:将传参的对象储存在了NSTimer的userInfo的字典中。
1 2 3 4 5 6 7 8 | 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类:通过设置tag来使用
1 2 3 4 5 6 7 | UIButton * markButton=[[UIButton alloc] initWithFrame:CGRectMake(280, 0, 30, 30)]; markButton.tag=@参数值; //这里是你要传递的参数值 [markButton addTarget:self action:@selector(addMark:) forControlEvents:UIControlEventTouchUpInside];
-(BOOL) addMark:(UIButton *)btn { NSLog(@%@,btn.tag]; |