Как запланировать вызов метода в Objective C - PullRequest
7 голосов
/ 17 июня 2010

Я пытаюсь сделать многопоточность в Objective C. То, что я хочу сделать сейчас, это то, что для некоторого экземпляра объектов, Я хочу, чтобы у меня была возможность вызвать какую-то функцию через 5 секунд. Как я могу это сделать?

В Coco 2D это очень легко сделать. У них есть то, что называется планировщик. В Objective C, как это сделать, пожалуйста?

Спасибо

Ответы [ 2 ]

14 голосов
/ 17 июня 2010

Вы можете использовать executeSelector: withObject: afterDelay :

Например:

[self performSelector:@selector(myFunc:) withObject:nil afterDelay:5.0];
2 голосов
/ 07 мая 2013

В дополнение к тому, что было сказано, если вы хотите передать один аргумент в myFunc, вызов можно изменить следующим образом:

[self performSelector:@selector(showNote:) withObject:@"S" afterDelay:1.0];

, и если вам нужно вызвать метод, который требует большечем 1 аргумент, вы можете сделать это, используя вызов, как показано в следующем фрагменте -

SEL selector = @selector(nextPicture:);
NSMethodSignature *signature = [[self class] instanceMethodSignatureForSelector:selector];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setSelector:selector];

//Set the arguments
[invocation setTarget:self];
NSString* str = [imageNames objectAtIndex:1];
[invocation setArgument:&str atIndex:2];
[NSTimer scheduledTimerWithTimeInterval:5.0f invocation:invocation repeats:NO];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...