解析参数到@selector的问题

需要读取@selector,请帮忙看看

解析一个参数到 @selector,实现代码如下:

- (void)viewDidLoad{
    [super viewDidLoad];

    NewsCell *cell = (NewsCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil){
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"NewsCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }
    NSString *string = @"image.png";

    [self performSelectorInBackground:@selector(doSomeThing::) withObject:nil];
}

-(void) doSomeThing:(UITableViewCell *)newsCell imageName:(NSString *)imageName{
    NSLog(@"newsCell: %@", newsCell);
    NSLog(@"imageName: %@", imageName);
}

创建了新的UITableViewCell名为cell,是从其它nib文件中加载的,并创建了新字符串名为string

问题,如何将cell和string作为参数发送到 performSelectorInBackground 中的 @selector

NSDictionary *args=[NSDictionary dictionaryWithObjectsAndKeys:cell,@"cell",string,@"imageName",nil];
[self performSelectorInBackground:@selector(doSomeThingWrapper:) withObject:dict];

-(void)doSomeThingWrapper:(NSDictionary *)args {

    [self doSomeThing:(NewsCell*)[args objectForKey:@"cell"]  imageName:[args objectForKey:@"imageName"]];
}

将你代码中的

 [self performSelectorInBackground:@selector(doSomeThing::) withObject:nil];

替换成:

NSDictionary *args=[NSDictionary dictionaryWithObjectsAndKeys:cell,@"cell",string,@"imageName",nil];
[self performSelectorInBackground:@selector(doSomeThingWrapper:) withObject:dict];

-(void)doSomeThingWrapper:(NSDictionary *)args {

    [self doSomeThing:(NewsCell*)[args objectForKey:@"cell"]  imageName:[args objectForKey:@"imageName"]];
}