仅在登录时获取数据

时间:2016-08-24 08:53:33

标签: ios swift

在我的应用程序中,我有一些功能:login,getNews,getWeather。最后两个函数只有在用户登录时才能执行。如果用户已经登录,我也不想每次都登录,所以如果两个持续函数返回一个未登录的错误我要登录然后执行需要登录的函数队列。 这只是一个例子,真正的代码更长,依赖登录的功能超过两个。我想知道管理这种情况的最佳解决方案。

4 个答案:

答案 0 :(得分:0)

例如,您可以存储在UserDefaults登录用户的状态。并根据此调用您想要的任何功能。

答案 1 :(得分:0)

当用户登录后,您可以将其凭证存储在钥匙串中。 在这里查看简要教程:

Tutorial One

Tutorial Two

然后,您可以每次检查是否存储了他的凭据并自动登录,然后执行getNews和getWeather功能。

答案 2 :(得分:0)

要在应用启动之间存储数据,您可以尝试以下两种方法之一:

1)非常简单的解决方案是以用户词典的形式将用户数据存储在UserDefaults中。 对于前NSUserDefaults.standardUserDefaults().setObject(userDict, forKey: @"User Dictionary")。如果您的userDict很大或很难制作,这可能会很痛苦。

2)另一种解决方案可以是,使用归档器来存储用户数据。您可以通过此link制作自定义归档程序。

答案 3 :(得分:0)

因此,当用户成功登录时使用NSUserDefaults已记录value = 1

实施例

使用该代码添加prefs

let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()

set object 1 let logged = 1 prefs.setObject(logged, forKey: "logged") 后成功登录。

logged

如果not logged if prefs.valueForKey("logged") as! Int == 1 { }else{ // go login } 显示登录信息

,请检查用户
  

您可以在项目

中的任何地方添加以下检查记录的代码
logout

对于use,您可以 let logged = 0 prefs.setObject(logged, forKey: "logged") ;

CSRF

由于

相关问题