支持web服务的iOS应用的控制流



我正在学习iOS开发的基础知识,我想做一个连接到web服务的简单应用程序。我在web应用程序方面有很多经验,所以我对应用程序需要发送/接收的请求类型很熟悉。我不确定的部分是一个服务支持的移动应用程序的整体架构是什么样的。

当我的应用程序运行时,我有一个主要需求:用户必须通过身份验证进入web服务。web服务可以发回令牌,应用程序可以将其用于所有后续请求。我希望用户能够登录一次,并为应用程序保持登录(即令牌对该设备仍然有效)无限期,除非他们注销。

在用户登录之前,应用程序应该只是一个登录屏幕。如果他们退出,也一样。否则,他们根本不需要看到登录屏幕。

所以我的问题是,正确的结构是什么?

AppDelegate中,我想制作一个LoginViewController并将其设置为rootViewController吗?然后如果用户登录了,推送到主视图的应用程序的其余部分?

或者我想初始化应用程序的主要部分(例如,其中有几个视图的UITabBarController),并检查令牌,然后显示一个模态登录屏幕,如果没有令牌可用?

我不清楚的是rootViewController应该是这样的应用程序,以及应用程序应该如何跟踪用户是否登录,并确定当应用程序打开时显示什么屏幕。

如果有人能给我一个高层次的概述,这样的应用程序应该如何构建,我真的很感激。

谢谢!

没有真正正确的方法来做到这一点,任何一个流都可能适合于应用程序。如果我有一些UI或数据,将显示,如果用户没有登录,那么我会使用它作为初始的rootViewController,并使用模态登录对话框来强制用户登录。另一方面,如果在用户登录之前我没有显示任何内容,那么如果用户当前未登录,我会将登录视图控制器设置为初始rootViewController。

为了跟踪正在登录的用户,您应该利用NSUserDefaults来持久化认证令牌。然后在应用程序中:didFinishLaunchingWithOptions:调用你的应用程序委托在NSUserDefaults中查找这个令牌(并可能与服务器验证它),然后设置rootViewController作为适当的

最新更新