12小时后如何清除特定密钥的UserDefault

时间:2018-08-01 04:01:03

标签: swift nsuserdefaults userdefaults

我正在尝试通过在用户登录后设置计时器来删除用户默认密钥。经过研究并尝试后,我发现当应用程序进入后台时计时器不会运行。

4 个答案:

答案 0 :(得分:0)

如果要在后台执行某些任务,则必须为应用程序启用后台模式。但这只允许几分钟在后台运行应用程序。

相反,您应该保存登录时间的时间戳记,并检查每个didFinishLaunchingWithOptions的当前时间和保存时间的时差。

答案 1 :(得分:0)

使用 DispatchQueue.global 代替 NSTimer ,将全局队列设置为后台。在执行中使用DispatchWorkItem。

getJSON

使用workItem后将其取消。

DispatchQueue.global(qos: .background).asyncAfter(deadline: .now() + TimeInterval(yourtime interval value), execute: workItem)

var workItem = DispatchWorkItem {
// write your flush userdefault code here
}

答案 2 :(得分:0)

您可以在用户默认状态下存储loginDate,并在Date().timeIntervalSince(loginDate) > 12 * 60 * 60中对applicationDidBecomeActive(_ application: UIApplication)进行检查

答案 3 :(得分:0)

尝试一下

DispatchQueue.global(qos: .background).async {
// Write your code here timer running while app will not turminate
}