我必须维护某人的代码。代码打开一个线程。iOS(以及我知道的任何其他语言)中的线程工作者函数只接受一个参数。为了克服这个问题,代码创建了一个数组,将所有参数添加到一个数组中并将其传递给线程。这是代码。
NSArray* params = [[NSArray alloc] initWithObjects: mainView, actionFlag, nil];
[self performSelectorOnMainThread:@selector(updateWorker:) withObject:params waitUntilDone:NO];
并且函数是这样调用的
-(void)updateWorker:(NSArray*)params
{
UIView* view = [params objectAtIndex:0];
bool actionFlag = ((NSNumber*)[params objectAtIndex:1]).boolValue;
/* do stuff with view and actionFlag */
}
我有一种直觉,这在很多层面上都是非常错误的,但无法为这个案例建立一个有效的论据。
将参数数量作为数组传递的缺点是什么?