swift - 如何快速从“默认值”中读取值?
问题描述
目标
我想通过命令行工具控制应用程序的行为,比如启用一些测试功能。然后我想也许我可以defaults tool
用来设置应用程序可以读取的配置。
以下是我尝试过的:
在命令行中
defaults write com.my.app enableFeature2 -bool true
在应用程序中
let userDefaults = UserDefaults.standard
userDefaults.addSuite("com.my.app")
let val = userDefaults.value(forKey: "enableFeature2")
print(val) // got a nil
预期用途
let bEnableFeature2 = (val as? Bool) ?? false
if bEnableFeature2 {
enableFeature2();
}
实际的
The `val` from userDefaults is `nil`
在应用程序的 UserDefaults 中,它似乎无法找到 plist 并从中读取 nil 。我想我可能做错了什么或错过了什么。
命令发出后,会在com.my.app.plistdefaults
处生成一个 plist 文件,其内容为.~/Library/Preferences/
Root { enableFeature2/Boolean/YES }
我应该如何桥接命令行和应用程序之间的交互?
--
其他
- 我的测试版本是通过 XCode 启动的
- 位于
~/Library/Developer/XCode/Derived/{APP_LONG_NAME}/
com.my.app
不是我的应用程序域,我是应用程序中的一个模块,所以我需要另一个域名。