我该如何在Swift的Cocoa应用程序中添加设置?

8

我对使用Swift编程还比较新手,想知道如何在我的Cocoa应用中添加设置/首选项是否有简单的方法。如果可能的话,希望提供一份逐步指南。我主要想知道如何将用户的偏好设置存储在磁盘上以及与此相关的代码部分。在我的当前代码中,需要检查用户选择了哪个设置,并基于此执行操作。我正在使用Xcode 7.1和Swift 2。谢谢提前!


1
你是指UI部分还是仅仅将用户设置永久存储在磁盘上? - Darko
嗯,我有点是指两者,但主要是代码和存储设置。感谢您的澄清。我会编辑我的帖子并使其更清晰。 - TDM
2个回答

20

NSUserDefaults类在代码中非常容易使用,而它的共享实例也很容易绑定到Interface Builder中的控件上。

例如,如果我想要一个名为“elmer”的整数首选项,并将其值设置为7,只需:

[[NSUserDefaults standardUserDefaults] setInteger:7 forKey:@"elmer"];
NSUserDefaults.standardUserDefaults().setInteger(7, forKey: "elmer")

要读取返回的值:

let elmer: Int = NSUserDefaults.standardUserDefaults().integerForKey("elmer")

 

在Interface Builder中将值绑定到控件上,将Controller Key设置为"values",Model Key Path的首选项名称为:

enter image description here

 

我建议阅读"Preferences and Settings Programming Guide",并熟悉"NSUserDefaults Class Reference"


谢谢你的回答。它很有帮助。 - TDM

5

SWITF 5.x

这个类名已经改变了,现在你需要这样写:

UserDefaults.standard.set("1234", forKey: "userID")

要设置一个可以保存任何类型的键。或者你可以像这样指定特定的类型

UserDefaults.standard.bool(forKey: "IsConfigured")

UI绑定仍然以相同的方式工作,@ElmerCat已经解释得很好了。

这是目前对我来说互联网上最重要的任何事情。而且找到这个帖子太难了。 - tuxedobob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接