Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将全局字符串存储在iOS中的Swift中,以便在应用程序范围内使用_Ios_Swift_String - Fatal编程技术网

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

将全局字符串存储在iOS中的Swift中,以便在应用程序范围内使用,ios,swift,string,Ios,Swift,String,我正在设计一个应用程序,它有一个登录屏幕。当用户输入用户名和密码时,将完成对web服务的调用,该调用在成功登录时返回一个令牌。现在,我需要将此令牌发送到应用程序中不同屏幕内的每个HTTP调用 我希望实现类似的功能,如下所示: 由于Swift中没有任何.h和.m文件,我如何存储我需要在任何视图控制器中访问的这些全局字符串(注意,这些不是常量,这些是全局变量)首先,使用全局变量不是大多数问题的正确答案。您应该有一个负责与web服务通信的对象,该对象还应该负责跟踪登录状态和令牌。如果URL发生更改,您

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

我希望实现类似的功能,如下所示:


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

首先,使用全局变量不是大多数问题的正确答案。您应该有一个负责与web服务通信的对象,该对象还应该负责跟踪登录状态和令牌。如果URL发生更改,您只需在一个位置更改它们,处理数据的代码不需要关心数据来自何处


也就是说,您可以在Swift中声明一个全局变量或常量,只需在文件的顶级范围内声明,而不在任何函数、方法、闭包或类型之外。您还可以使用修改变量/常量的可见性。

这正是我想要的:

我可以使用
NSUserDefaults

保存:

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

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

请注意,
nsderdefaults
不使用任何加密,这样密码之类的东西就根本不安全了。