2012-10-13 118 views
0

我正在使用特定的API,需要刷新令牌才能使用它。每30分钟执行一次选择器

刷新此令牌后,它可用半小时,然后变为无效。然后我必须再次刷新它。我现在所做的是按照每次请求刷新它,但是它们在几秒或几分钟内发生得很快,所以这可能不是最好的方法。

如果你能指教我一件事情会很棒!

回答

3

你总是可以有一些实例变量或变量保存在对象上一次令牌刷新,其中当一个请求时,检查之间的“NSTimeInterval”现在的日期/时间时说:令牌已设置,然后在时间大于30分钟时提交新的令牌请求。

这样做的好处是(与使用计时器相比),在长时间不活动的情况下,您可以根据需要申请新的30分钟令牌,而不是每30分钟应用程序就会有效。

1

您可以使用NSTimer;

[NSTimer timerWithTimeInterval:1800 target:self selector:@selector(refreshToken:) userInfo:nil repeats:YES]; 
+0

什么是放置它的最佳地点?并且在这里需要dispatch_once? – Devfly

+0

它取决于你想要刷新数据的位置......如果你需要整个应用程序的数据,然后把它放到你的委托文件中...... –

+0

你应该在第一次需要刷新令牌时放置它。计时器将自己作为方法中的参数发送,所以如果必须的话,您可以从那里使其失效。 dispatch_once应该在这里需要。 – Martol1ni