gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 05:41:39 24 4
gpt4 key购买 nike

总的来说,我是 Swift 和 iOS 的新手,如果有任何帮助,我将不胜感激……我正在制作一个应用程序,其中包含一个名为 ViewController.swift 的文件,其中包含 ViewController类,以及另一个名为 BTService.swift 的文件,其中包含 BTService类(class)。我在 VC 中设置了一个 slider ,我想获取它的值并在 BTService 中使用它类(class)。我之前问过一个关于这个的问题(Swift Reference Variable from Specific Instance of Different Class),有人建议我使用 NSUserDefaults来完成这个。这是我的带有 slider 值的 VC 类,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)

sliderValue存储为 floatNSUserDefaults .现在,根据我的理解,我可以转到我的 BTService类并简单地这样做:

@IBAction func sliderValChanged(sender: UISlider) {
let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
let currentValue: Float = defaults.floatForKey("sliderValue")
println(currentValue)<br/>
}

但是,这是行不通的。我没有收到任何语法错误,但是当我调整 slider 时,我也没有看到任何值打印到控制台。有趣的是,当我放置 println 时,我确实看到了值的输出。 VC 中的语句,它表明正在定义 currentValue 并且正在正常运行。对此的任何帮助将不胜感激。非常感谢!

最佳答案

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

}

关于ios - NSUserDefaults 似乎没有创建全局可访问的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29113996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com