2015-10-12 5 views
0

Я хочу, чтобы мой веб-сервис вызывал один раз каждые 6 часов. Я новичок в iOS. Пожалуйста, помогите с любой помощью. Я застрял.WebService Call after timeInterval

+0

Используйте NSTimer для вызова метода периодически. – pkc456

+0

Вы можете использовать фоновый режим обновления, но нет способа запланировать определенный интервал, например 6 часов. Если вам нужно ровно шесть часов, то тихий толчок с вашего сервера является единственным способом – Paulw11

ответ

0

вы можете позвонить, используя NSTimer. это автоматически называется, какое время вы устанавливаете. , например.

NSTimer *timer= [NSTimer scheduledTimerWithTimeInterval:10.0(your time) target:self selector:@selector(someMethod) userInfo:nil repeats:YES]; 

-(void)someMethod 
{ 
    ////API called here... 
} 
+0

Спасибо, но когда пользователь убивает приложение, этот метод вызывает или нет. Я хочу вызвать в любой ситуации. –

+0

, если приложение убито, метод не вызывается. если это состояние приложения, то оно вызывается. нет возможности вызывать методы, если приложение убито. –

+0

NSTimer не будет работать, если ваше приложение находится в фоновом режиме – Paulw11

3

Вы можете пользователем NSTimer и запланировать его в течение 6 часов

 NSTimer *timer = nil; 
     timer = [NSTimer scheduledTimerWithTimeInterval:6*60*60 //6 hour 
                  target:self 
                 selector:@selector(performAction) 
                 userInfo:nil 
                 repeats:YES]; 
+0

Спасибо, но когда пользователь убивает приложение, этот метод вызывает или нет. Я хочу вызвать в любой ситуации. –

+0

Возможно, вы можете взглянуть на это для работы в фоновом режиме http://stackoverflow.com/questions/8415870/scheduled-nstimer-when-app-is-in-background –

0
In ViewDidLoad 
NSTimer *timer = [NSTimer timerWithTimeInterval:360.0 target:self selector:@selector(hideandview) userInfo:nil repeats:YES]; 

    -(void)hideandview 
    { 
     ////API called here... 
    } 
0

Вы должны сохранить в последний раз в prefence (NSUserDefaults), когда вы делаете вызов.

Всякий раз, когда приложение запускается. Запустите таймер и проверьте текущее время с последним сохраненным временем и получите разницу.