2つのパラメーターを使用してメインスレッドでセレクターを実行するための優れた方法を探しています
私は本当に使うのが好きです
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
メソッド、ただし今は2つのパラメーターがあります。
つまり、基本的に、画像が読み込まれたときに通知する必要のあるデリゲートがあります。
[delegate imageWasLoaded:(UIImage *)image fromURL:(NSString *)URLString;
ただし、これを行うメソッドはバックグラウンドスレッドで呼び出される可能性があり、デリゲートはこの画像を使用してUIを更新するため、これはメインスレッドで行う必要があります。ですから、メインスレッドでもデリゲートに通知してもらいたいのです。
したがって、1つのオプションが表示されます。辞書を作成できます。この方法では、渡す必要のある2つのパラメーターを含むオブジェクトが1つだけあります。
NSDictionary *imageData = [NSDictionary dictionaryWithObjectsAndKeys:image, @"image", URLString, @"URLstring", nil];
[(NSObject *)delegate performSelectorOnMainThread:@selector(imageWasLoaded:) withObject: imageData waitUntilDone:NO];
しかし、このアプローチは私には正しくないようです。これを行うためのよりエレガントな方法はありますか?おそらくNSInvocationを使用していますか?前もって感謝します。