激活开关时用文本填充文本字段

Filling textfields with text when a switch is activated

当我打开开关时,我试图用存储在其他页面之一的 NSUserDefaults 变量中的文本填充文本字段。当我打开开关时,我收到 "unrecognized selector sent to instance" 的错误消息。这是我的代码,它给我错误。 gamesListText 是我已经有数据的 NSUserDefaults 变量。

@IBAction func switchActivated(sender: AnyObject) {

    if switch.on {
        gameSearchLabel.text = gameListText
    }
}

我看过其他遇到此错误的人,但其中 none 确实适用于我的特定情况,而且它们都是非常过时的问题。

将您的插座重命名为 switch 以外的名称。 Swift 认为您正在尝试定义 switch statement.

@IBOutlet weak var switchOutlet: UISwitch!
@IBAction func switchAction(sender: AnyObject) {
    if switchOutlet.on {
        println("switch is ON")
    }
    else {
        println("switch is OFF")
    }
}

此外,当 setting/getting 你的 NSUserDefaults 时你应该使用 stringForKey 而不是 objectForKey 因为你是 setting/getting 一个 String 类型.

@IBAction func switchActivated(sender: UISwitch) {
    if sender.on {
        gameSearchLabel.text = gameListText
    }
}

在你的 viewDidLoad

gamesListText = NSUserDefaults.standardUserDefaults().stringForKey("gamesListText") ?? ""