阻止调用API在时间范围内获取数据

时间:2018-03-29 22:02:49

标签: ios swift api

我基本上遇到此问题,此Reporting API仅允许我每90秒调用一次。

我正在构建一个应用程序,每次打开它时都会获取数据,以获取最新数据,但是如果它在90秒之前等待并显示缓存数据,我需要停止应用程序调用API ,我该怎么做?

1 个答案:

答案 0 :(得分:1)

每次ping API时,将当前时间与上次完成时间进行比较。有点像这样:

// set defaults for storage
let userDefaults = UserDefaults.standard
// set time 
let date = Date()
//Check Storage
if let theDate = userDefaults.object(forKey: "date") as? Date {
    // on successful load compare times
    if date.timeIntervalSince(theDate) > 90000 /* I think it runs in milliseconds so I put 90 seconds worth there*/ {
        // do API call here
        // save time
        userDefaults.set(date as! Any, forKey: "date")
    } else {
        print("too soon")
} else {
    // data not successfully loaded
    // try to ping API here too
    // save time 
    userDefaults.set(date as! Any, forKey: "date")
}