NSUserDefaults 似乎没有创建全局可访问的变量

NSUserDefaults Seemingly not Creating Globally Accessible Variables

一般来说,我是 Swift 和 iOS 的新手,如果能提供任何帮助,我将不胜感激...我正在制作一个应用程序,其中包含一个名为 ViewController.swift 的文件,其中包含 ViewController class,另一个名为 BTService.swift 的文件包含 BTService class。我在 VC 中设置了一个滑块,我想获取它的值并在 BTService class 中使用它。我之前问过一个关于这个的问题 (Swift Reference Variable from Specific Instance of Different Class),有人建议我使用 NSUserDefaults 来完成这个。这是我的 VC class 滑块值 positionSlider.value 分配给一个键 sliderValue

class ViewController: UIViewController { @IBOutlet var positionLabel: UILabel! @IBOutlet var positionSlider: UISlider! @IBOutlet var connectionLabel: UILabel! @IBAction func sliderValChanged(sender: UISlider) {

    let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
    println(positionSlider.value)
    defaults.setFloat(Float(positionSlider.value), forKey: "sliderValue") // Write to NSUserDefaults
    defaults.synchronize()
    let currentValue: Float = defaults.floatForKey("sliderValue")
    var currentValueString=NSString(format: "%.5f", currentValue)

sliderValueNSUserDefaults 中存储为 float。现在,根据我的理解,我可以转到 BTService class 并简单地执行此操作:

@IBAction func sliderValChanged(sender: UISlider) { 让默认值:NSUserDefaults = NSUserDefaults.standardUserDefaults() 让 currentValue: Float = defaults.floatForKey("sliderValue") println(当前值)<br> }

但是,这不起作用。我没有收到任何语法错误,但是当我调整滑块时,我也没有看到任何值打印到控制台。有趣的是,当我在 VC 中放置 println 语句时,我 do 看到值的输出,这表明 currentValue 正在定义并且正在运行就像它应该的那样。对此的任何帮助将不胜感激。非常感谢!

@IBAction func sliderValChanged(sender: UISlider) {
    NSUserDefaults.standardUserDefaults().setFloat(sender.value, forKey: "sliderValue")
    let currentValue = NSUserDefaults.standardUserDefaults().floatForKey("sliderValue")
    println(currentValue)

}