如何在一段时间后自动注销用户?

时间:2016-01-21 20:10:48

标签: ios swift

在登录我的应用程序时,我从特定用户的BackEnd API获得当前用户登录有效的时间 [“liveTime”]。我将此liveTime(参数)保存到NSUserDefaults。

我的要求是当liveTime变为0时再次显示登录页面。如果该特定用户杀死应用程序并且liveTime大于0,它将在登录后显示默认页面。

请分享您的经验,如何做或解决此类问题的最佳做法是什么。如果有人已经完成,请分享代码段。

2 个答案:

答案 0 :(得分:0)

也许这可以帮到你。

func afterDelay(seconds: Double, closure: () -> ()) {
    let when = dispatch_time(DISPATCH_TIME_NOW, Int64(seconds * Double(NSEC_PER_SEC)))
    dispatch_after(when, dispatch_get_main_queue(), closure)
}

调用函数

 self.afterDelay(4) {
                    // Write what you want to happen after 4 sec. You can increase the number
                    self.dismissViewControllerAnimated(true, completion: nil)
                }

答案 1 :(得分:0)

解决方案是跟踪上次登录时间戳 NSUserDefaults 以及从服务器检索的最后最长实时时间(除非它必须在那个时刻获取[因为与服务器通信的滞后而不合适的事情])。

然后,在您的初始控制器的viewDidLoad或您的AppDelegate中(选择是您的)检查该时间是否在允许的最大值之后并相应地继续。

  

<强>更新

最佳做法:

1.-添加某种等待页面,让用户等待,直到您从服务器检索数据。

2.-收到该数据后,检查 NSUserDefaults 中保存的时间戳,然后继续登录欢迎页面

3.-如果用户登录,则更新 NSUserDefaults

中的时间戳