NSUserDefaults在Swift中注册默认值

时间:2015-02-12 10:29:15

标签: ios swift nsuserdefaults

我在AppDelegate中注册默认值:

let defaults = NSUserDefaults.standardUserDefaults()
        let registrationDictionary = [kSelectedBitrate: 128 as NSNumber, kSelectedCodec: kAudioFormatMPEG4AAC as NSNumber]
        defaults.registerDefaults(registrationDictionary)
        defaults.synchronize()

但是,当我稍后在视图控制器中读取它时,两个整数值都是0:

    let defaults = NSUserDefaults.standardUserDefaults()
    let bitrate = defaults.integerForKey(kSelectedBitrate)
    println(bitrate)
    let codec = defaults.integerForKey(kSelectedCodec)
    println(codec)
    println(kAudioFormatMPEG4AAC)

控制台日志

0
0
1633772320

代码出了什么问题?

1 个答案:

答案 0 :(得分:2)

原因是控制器在didFinishLaunchingWithOptions中的AppDelegate之前加载。

因此,我将代码复制到控制器的init方法,问题就解决了。