Ios NSUserDefaults在Swift中注册默认结果
我正在AppDelegate中注册默认值:Ios NSUserDefaults在Swift中注册默认结果,ios,swift,nsuserdefaults,Ios,Swift,Nsuserdefaults,我正在AppDelegate中注册默认值: let defaults = NSUserDefaults.standardUserDefaults() let registrationDictionary = [kSelectedBitrate: 128 as NSNumber, kSelectedCodec: kAudioFormatMPEG4AAC as NSNumber] defaults.registerDefaults(registrationDictio
let defaults = NSUserDefaults.standardUserDefaults()
let registrationDictionary = [kSelectedBitrate: 128 as NSNumber, kSelectedCodec: kAudioFormatMPEG4AAC as NSNumber]
defaults.registerDefaults(registrationDictionary)
defaults.synchronize()
但是,当我稍后在view controller中读取时,两个整数值都是0:
let defaults = NSUserDefaults.standardUserDefaults()
let bitrate = defaults.integerForKey(kSelectedBitrate)
println(bitrate)
let codec = defaults.integerForKey(kSelectedCodec)
println(codec)
println(kAudioFormatMPEG4AAC)
控制台日志
0
0
1633772320
代码有什么问题?原因是控制器在
使用AppDelegate
中的选项完成启动之前正在加载
因此,我将代码复制到控制器的init
方法,问题就解决了。尝试将“as NSNumber”替换为“as Int”@TheTom,结果是一样的。代码对我有效。除非(这很愚蠢)kSelectedBitrate
和kSelectedCodec
在这两种情况下是不同的。@rakeshbs所以你在控制台中打印了128个?你能告诉我你的Xcode版本吗?(我的是6.1.1)我的也是6.1.1
我在AppDelegate中设置它,并在我的viewController中调用它viewDidLoad
。