我基本上遇到此问题,此Reporting API仅允许我每90秒调用一次。
我正在构建一个应用程序,每次打开它时都会获取数据,以获取最新数据,但是如果它在90秒之前等待并显示缓存数据,我需要停止应用程序调用API ,我该怎么做?
答案 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")
}