在Swift中将全局字符串存储在iOS中,以供应用程序范围内使用

时间:2014-08-18 08:46:20

标签: ios swift string

我正在设计一个具有登录屏幕的应用程序。当用户输入用户名和密码时,将完成对Web服务的调用,该调用将在成功登录时返回令牌。现在,我需要将此令牌发送到应用程序内不同屏幕内的每个HTTP调用。

我希望实现类似的功能:Where to store global constants in an iOS application?

由于Swift中没有任何.h.m文件,如何存储这些全局字符串(注意这些不是常量,这些是全局变量)我需要能够在任何视图控制器中访问

2 个答案:

答案 0 :(得分:3)

这正是我想要的:Sharing strings and variables throughout ios app

我可以使用NSUserDefaults

分享apikeys,令牌等字符串

省电:

NSUserDefaults.standardUserDefaults().setObject("apistringhere", forKey: "apikey")
NSUserDefaults.standardUserDefaults().synchronize()

得到:

NSUserDefaults.standardUserDefaults().objectForKey("apikey")

答案 1 :(得分:1)

首先,使用全局变量不是大多数问题的正确答案。您应该使用一个负责与Web服务通信的对象,并且该对象还应负责跟踪登录状态和令牌。如果网址发生变化,您只需在一个地方进行更改,而处理数据的代码并不需要关注数据的来源。

话虽这么说,你可以在Swift中声明一个全局变量或常量,只需在任何函数,方法,闭包或类型之外声明文件的顶级范围。您还可以使用access control keywords修改变量/常量的可见性。