私は本当に今、私は2つのパラメータを持っている除く2つのパラメータを使ってメインスレッドでセレクタを実行する良い方法はありますか?
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
方法を、使用してのような二つのパラメータ
Iとメインスレッドでセレクタを実行するための良い方法を探しています。
だから基本的に私は、私はイメージがロードされたときに通知する必要がデリゲートを持っている:
[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を使用していますか? ありがとうございます。
これは正しい解決策GCDです。これが頻繁に使用されるなら、簡単にカスタムメソッド 'performSelectorOnMainThread:withObject:withObject:'に入れることができます。 –
ありがとうございました!これは私が探していたものです – dariaa
使用後に何かをリリースする必要がありますか(引数は保持されているため) – b123400