Как написать `executeSelectorInBackground: afterDelay:` в одну строку кода? - PullRequest
1 голос
/ 11 января 2012

Есть методы performSelectorInBackground: и performSelector: afterDelay: в NSObject. Как объединить их в одну строку кода? Может как-то с NSTimer?

Ответы [ 2 ]

13 голосов
/ 11 января 2012

Рассматривали ли вы использование блоков для этого?

double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0),
^(void){
    //your code here
});

Кроме того, если вам кажется, что написано слишком много, для этого уже есть фрагмент, начните набирать «dispatch_after», и вы увидите его.

0 голосов
/ 11 января 2012

NSTimer

[NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(targetMethod:)
userInfo:nil
repeats:NO];
...