我有一个tableview,我想在每天的特定时间(用户输入一个选择器)清空它.以下是它主要使用的代码,但是让我们说用户在晚上7点打开应用程序,更新时间是晚上8点,数据不会被删除(这是正确的)但是当时间是在同一天晚上9点并且应用程序打开数据不会被删除(这是不正确的).我认为这与lastRefreshDate应用程序打开时更新的evreytime时间有关,必须等待24小时lastRefreshDate而不是等待userPickedHour.该应用程序应该像这样工作有一个设定的时间晚上7点.因此,应用程序应该在第二天晚上7点或晚上7点后删除数据,当用户打开应用程序时,如果用户在第二天晚上7点之前打开应用程序,则不应删除数据,
这是代码:
class RefreshManager: NSObject {
static let shared = RefreshManager()
private let defaults = UserDefaults.standard
private let defaultsKey = "lastRefresh"
private let calender = Calendar.current
func loadDataIfNeeded(completion: (Bool) -> Void) {
if isRefreshRequired() {
// load the data
defaults.set(Date(), forKey: defaultsKey)
print("xxxxxx")
completion(true)
} else {
print("yyyyyy")
completion(false)
}
}
private func isRefreshRequired(userPickedHour: Int = 16) -> Bool {
let SleepPickerdate = UserDefaults.standard.object(forKey: "SleepDate") as? Date
let userPickedHour = Calendar.current.component(.hour, from: (SleepPickerdate)!)
print(userPickedHour) …Run Code Online (Sandbox Code Playgroud)