I have a problem retrieving default values from the settings bundle when first launching an App. All non-multivalue fields return the default correctly. All multivalue field
I just ran into this problem and I ask myself why the settings bundle provides a default value, if this value can never be read from the NSUserDefaults.
I created a swift extension that does the following:
So I can do this:
NSUserDefaults.standardUserDefaults().settignsStringValue("MYPREFS_DOMAIN", defaultValue: "domain.com")
This is the extension:
extension NSUserDefaults{
func settingsBoolValue(key: String, defaultValue: Bool) -> Bool{
// The case for Bool is different as it would return `false` when the key is not set.
if let v: AnyObject = self.objectForKey(key){
// The boolean value exists
} else {
self.setObject(defaultValue, forKey: key)
}
return self.boolForKey(key)
}
func settingsStringValue(key: String, defaultValue: String) -> String{
if let v = self.stringForKey(key){
return v
} else {
self.setObject(defaultValue, forKey: key)
return defaultValue
}
}
}