0

当我点击一个按钮时,它将调用一个动作,该动作又将启动一个过程(通过另一种方法)并返回。我想过使用

[<target> performSeleltorInBackgroundThread:....];

- 但我无法通过这个传递多个参数。

我怎样才能实现它。

4

2 回答 2

3

你可以这样做:

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"];
    });
});
于 2013-01-10T13:17:59.577 回答
0

您不能这样做,但您可以将参数添加到数组中,并将该数组作为唯一一个参数传递给 -performSelectorInBackgroundThread。使用文字你可以很容易地做到这一点:

NSArray *arguement = @[first, second, third];

在 -performSelector 中:

id first = argument[0];
...
于 2013-01-10T13:15:52.180 回答