ボタンをタップすると、アクションが呼び出され、そのアクションが(別の方法で)プロセスを開始して戻ります。使ってみようと思いました
[<target> performSeleltorInBackgroundThread:....];
-しかし、私はこれを通して複数の引数を渡すことができませんでした。
どうすればそれを達成できますか。
ボタンをタップすると、アクションが呼び出され、そのアクションが(別の方法で)プロセスを開始して戻ります。使ってみようと思いました
[<target> performSeleltorInBackgroundThread:....];
-しかし、私はこれを通して複数の引数を渡すことができませんでした。
どうすればそれを達成できますか。
次のように実行できます。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self goDoSomethingLongAndInvolved:arg1 and:arg2 and:arg3 and:argN];
dispatch_async(dispatch_get_main_queue(), ^{
[textField setStringValue:@"Done doing something long and involved - Update UI"];
});
});
これはできませんが、配列に引数を追加して、この配列を唯一の引数として -performSelectorInBackgroundThread に渡すことはできます。リテラルを使用すると、それを非常に簡単に行うことができます。
NSArray *arguement = @[first, second, third];
-performSelector:
id first = argument[0];
...