2

このメソッドは本当にクールです:

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;

しかし、メインスレッドで引数の数を使用してメソッドを実行するには、次のような単純なものが必要です。

- (void)methodWithFirstObject: secondObject:

これを行う最も簡単な方法は何ですか?

4

3 に答える 3

3

NSDictionaryオブジェクトを引数として 使用します。

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    @"value1", @"arg1", @"value2", @"arg2", nil];

arg に dict を渡します。

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;
于 2012-05-05T13:36:01.803 に答える
2

performSelectorOnMainThreadNSOperation、GDC を操作する便利な方法です。さらに機能が必要な場合は、次のレベルにドロップダウンしてください。もう少し複雑さを管理する必要がありますが、柔軟性は高くなります。非常に多くのカカオがこのように設計されています.

を読みNSOperationたいと思うでしょうが、これはあなたが望むことをすると思います[私の電話で入力し、コンパイルしていません]

NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
  [self myMethod:foo thatRequiresMultiple:bar andAlso:baz];
}];

[[NSOperationQueue mainQueue] addOperation:operation];
于 2012-05-05T13:55:53.670 に答える