このメソッドは本当にクールです:
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;
しかし、メインスレッドで引数の数を使用してメソッドを実行するには、次のような単純なものが必要です。
- (void)methodWithFirstObject: secondObject:
これを行う最も簡単な方法は何ですか?
このメソッドは本当にクールです:
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;
しかし、メインスレッドで引数の数を使用してメソッドを実行するには、次のような単純なものが必要です。
- (void)methodWithFirstObject: secondObject:
これを行う最も簡単な方法は何ですか?
NSDictionaryオブジェクトを引数として 使用します。
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"value1", @"arg1", @"value2", @"arg2", nil];
arg に dict を渡します。
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;
performSelectorOnMainThread
はNSOperation
、GDC を操作する便利な方法です。さらに機能が必要な場合は、次のレベルにドロップダウンしてください。もう少し複雑さを管理する必要がありますが、柔軟性は高くなります。非常に多くのカカオがこのように設計されています.
を読みNSOperation
たいと思うでしょうが、これはあなたが望むことをすると思います[私の電話で入力し、コンパイルしていません]
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
[self myMethod:foo thatRequiresMultiple:bar andAlso:baz];
}];
[[NSOperationQueue mainQueue] addOperation:operation];