
func registerSettingsBundle(){ let appDefaults = [String:AnyObject]() UserDefaults.standard.register(defaults: appDefaults) UserDefaults.standard.synchronize() } func updatedisplayFromDefaults(){ let defaults = UserDefaults.standard let update_lot = defaults.bool(forKey: "update_lot") print(update_lot) } 我在vIEwDIDLoad中调用这些方法
overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() registerSettingsBundle() updatedisplayFromDefaults() } 然而,这并没有得到我的默认值(这些都是真的,但它们都返回false).如果我关闭应用程序,打开设置,调整设置并重新打开应用程序,这会产生正确的值.有没有获得默认设置?我走了阅读pList的路线,但是如果我更改设置包中的设置,它将不会生效.
解决方法this does not get me the default values (which are all true,but they
all return false)
看起来你有一个切换开关,在设置包中显示为ON,当你读取包时,你得到所有的错误值.
如果是这种情况,那么你在这里遗漏了一些东西.
在设置bundle(Root.pList)时,我们有“Default Value”字段,它与切换开关的实际默认值无关.这只是一个切换的视觉指示器.
您可以在pList中将“Default value”设置为“YES”,但是当您尝试读取该值时,您最终会变为false.
在这里,我将Root.pList中的Reminder的默认值设置为YES,更新为NO
因此,当应用程序启动时,它显示如上.
但是当我试图读取这些默认值时 – 它们都是假的.
func getDefaults() { let stanDefaults = UserDefaults.standard print("Default value of Update - \(stanDefaults.bool(forKey: "update_lot_pref"))") print("\nDefault value of Reminder - \(stanDefaults.bool(forKey: "reminder_pref"))")} Default value of Update – false Default value of Reminder – false
现在,如果要同步这些值 – Root.pList中的默认值和默认值 – 那么您必须以编程方式设置它.
func setApplicationDefault() { let stanDefaults = UserDefaults.standard let appDefaults = ["reminder_pref": true] stanDefaults.register(defaults: appDefaults) stanDefaults.synchronize()} 在我的Root.pList中,我的默认值为YES,并且当vIEwDIDload我将此首选项值设置为true时.我跑的时候给了我
Default value of Reminder – true
这就是我的Root.pList的样子.
希望能帮助到你.
总结以上是内存溢出为你收集整理的ios – Swift 4设置捆绑,获取默认值全部内容,希望文章能够帮你解决ios – Swift 4设置捆绑,获取默认值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)