Постоянно проверять данные (метод) iOS

Есть ли какой-либо метод (например, - viewDidLoad) для непрерывного выполнения части кода? Мне нужно иметь возможность постоянно проверять значение на удаленном сервере.

3 ответа

Решение

Чтобы сделать это, нужно настроить NSTimer.

-(void)startCheckingValue
{
    mainTimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(checkValue:) userInfo:nil repeats:YES];
    [[NSRunLoop mainRunLoop] addTimer:mainTimer forMode:NSDefaultRunLoopMode];
}

-(void)checkValue:(NSTimer *)mainTimer
{
    //Placeholder Function, this is where you write the code to check your value on the remote server
}

Функция timerWithTimeInterval - это та, которая вас интересует, основные вещи, которые вам нужно передать, как вы видите выше, это интервал, с которым она будет выполнять функцию, селектор которой вы передаете. Интервал времени указан в секундах, поэтому в настоящее время он настроен на проверку каждую секунду, что, вероятно, слишком быстро.

Используйте NSTimer для выполнения одного и того же блока кода каждые x секунд. Тем не менее, я не думаю, что это то, что вы хотите, учитывая, что это создаст дополнительную нагрузку на сервер, и вас могут забанить, так что, возможно, есть лучший способ.

Страница Apple по использованию NSTimer

Вы должны использовать NSTimer Для этого:

в вашем интерфейсе объявите NSTimer объект как:

NSTimer *timer;

в твоем.m viewDidLoad метод добавить строку ниже.

timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];

в timerFireMethod метод, который вам нужно сделать, вызов сервера и другие вещи.

Другие вопросы по тегам