IOS - создание и использование интервальных таймеров - PullRequest
19 голосов
/ 10 августа 2011

Я новичок в разработке для IOS, но у меня большой опыт разработки под Android.Мой вопрос касается создания и использования интервальных таймеров.

В Android я мог бы легко сделать таймер следующим образом:

timedTimer = new Timer();
    timedTimer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {

            TimedMethod();
        }

    }, 0, 1000);

Где интервал составляет 1000 мс и метод TimedMethod () вызывается на каждом тике.Как мне реализовать подобную функцию в IOS?

Большое спасибо за чтение!Любая помощь будет великолепна!: -)

Ответы [ 4 ]

43 голосов
/ 10 августа 2011

Вы можете использовать повторяющиеся NSTimer, например, так:

- (void) startTimer {
   [NSTimer scheduledTimerWithTimeInterval:1 
                                    target:self 
                                  selector:@selector(tick:) 
                                  userInfo:nil
                                   repeats:YES];
}

- (void) tick:(NSTimer *) timer {
   //do something here..

}
5 голосов
/ 10 августа 2011

Используйте

[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerCallback) userInfo:nil repeats:YES];

В том же классе, в котором вы вызывали вышеуказанный метод, создайте метод с именем timerCallback. Это будет вызываться каждый раз, когда срабатывает ваш таймер; каждые 1000 миллисекунд.

0 голосов
/ 08 февраля 2016

Для Swift:

Создайте объект таймера, используя строку ниже, которая будет вызывать метод загрузки каждые 10 секунд. Если вы получаете , не реализует methodSignatureForSelector , расширяйте свой класс с помощью NSObject. Прочитайте это для получения дополнительной информации Объект X класса Y не реализует methodSignatureForSelector в Swift

 timer = NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: "upload", userInfo: nil, repeats: true)

func upload() {
        print("hi")
    }
0 голосов
/ 10 марта 2014

Используйте метод ниже, представленный в файле NSTimer.h Foundation Framework

Синтаксис:

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;

Использование:

#define kSyncTimerLength 4 //Declare globally
-(void) timerActivityFunction; //Declare in interface

[NSTimer scheduledTimerWithTimeInterval:kSyncTimerLength target:self
        selector:@selector(timerActivityFunction) userInfo:nil repeats:NO];

-(void) timerActivityFunction {
     // perform timer task over-here   
}
...