私は誰かのコードを維持しなければなりません。コードはスレッドを開きます。iOS (および私が知っている他の言語) のスレッド ワーカー関数は、1 つのパラメーターのみを受け入れます。これを克服するために、コードは配列を作成し、すべてのパラメーターを配列に追加して、それをスレッドに渡します。これがコードです。
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 */
}
これは非常に多くのレベルで非常に間違っていると私は直観していますが、この場合の有効な議論を構築することはできません.
引数の数を配列として渡すことの欠点は何ですか?