swift - 使用 Swift 在 .GlobalPreferences 中保存键值对

标签 swift macos

我正在编写一个简短的 Mac 应用程序(我们称之为“myApp”),我需要读取和写入 ~/Library/Preferences/中的 .GlobalPreferences plist。

对于阅读部分,我使用以下内容并且工作正常:

let boolValue = NSUserDefaults.standardUserDefaults().boolForKey("aKeyInGlobalPreferences")

但是,我在更改同一键的值时遇到了一些麻烦。我尝试了以下方法:

NSUserDefaults.standardUserDefaults().setBool(true, forKey: "aKeyInGlobalPreferences")
NSUserDefaults.standardUserDefaults().synchronize()

遗憾的是,它没有更改 .GlobalPreferences 中的键值。相反,它创建了一个新的 plist com.myName.myApp,其中包含键值对。

如何让我的应用写入 .GlobalPreferences 而不是创建新的 plist?

最佳答案

您需要使用 setPersistentDomain() 专门写入全局域。

NSUserDefaults.standardUserDefaults().setPersistentDomain(["aKeyInGlobalPreferences":true],
    forName: NSGlobalDomain)

关于swift - 使用 Swift 在 .GlobalPreferences 中保存键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34108000/

相关文章:

ios - 如何使用 IOS 9 风格自定义 UIActivityIndi​​catorView

Mac 上的 JavaFX WebView 字体问题

macos - 是否可以在 Mac 中搭建 Controller 并使用 Visual Studio Code 查看?

iphone - 音频/视频编程

macos - Mac OS X 终端 Zip 实用程序不适用于 dSYM 文件

ios - 自 Xcode 8 以来 UI 测试速度变慢

swift - 如何测试一个值是否真的是 Swift 3 中的对象?

ios - 使用 MMSegmentSlider 的 UISlider 动画

python - Selenium 远程 webdriver 错误(连接被拒绝)

ios - UITapGestureRecognizer 不在 UILabel 上工作,但在父 View 上工作