按下按钮时将生成的单词保存到数组/单词列表

时间:2018-03-16 08:29:07

标签: arrays swift xcode sorting

我敢打赌,对大多数人来说,这是一个非常简单的问题,所以我会很快。基本上我的Swift应用程序生成一个随机单词,我希望用户能够选择标记为1 23的按钮,然后将该单词保存到该特定数字中。阵列。稍后(包括在应用程序关闭之后等),用户可以查看他们为其分配号码的所有单词。我知道它涉及创建一个新类并将相应的数组放在那里,但我真的不知道从哪里开始,所以任何帮助都表示赞赏。很抱歉,如果您不清楚这一点,那么您可以说我对Swift /编程很陌生。截至目前,我所有与应用程序的这一部分相关的是按钮:

var chosenNumber : String = ""


@IBAction func chosenOne(_ sender: Any) {
    chosenDifficulty = "one"
}
@IBAction func chosenTwo(_ sender: Any) {
    chosenNumber = "two"
}
@IBAction func chosenThree(_ sender: Any) {
    chosenNumber = "three"
}

谢谢

1 个答案:

答案 0 :(得分:1)

创建一个computedProperty在ViewController中保存是否有新值,并在viewController中的任何位置访问它时返回保存的值:

 var savedWords: [String: Any]? {
    set{
        guard let value = newValue else {
            UserDefaults.standard.removeObject(forKey: "SavedWords")
            UserDefaults.standard.synchronize()
            return
        }
        UserDefaults.standard.set(value, forKey: "SavedWords")
        UserDefaults.standard.synchronize()
    }
    get{
        return UserDefaults.standard.string(forKey: "SavedWords") as? [String: Any]
    }
}

和一个字典,其中包含您要添加/删除的当前字词的键值对

var currentWords: [String: Any]? = ["button1": "one","button2": "two","button3": "three"]

现在,只要点击您的按钮,您就可以通过以下方式将特定单词添加到与currentButton键相关联的 currentWords 词典中:

currentWords["button1"] = /*selectedValue from button*/

分配后如果要保存 currentWords ,只需执行

self.savedWords = currentWords

如果要检索已保存的词并将其分配给currentWords,您只需执行以下操作:

self.currentWords = savedWords