Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 按下按钮时将生成的单词保存到单词数组/列表_Arrays_Swift_Xcode_Sorting - Fatal编程技术网

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

Arrays 按下按钮时将生成的单词保存到单词数组/列表,arrays,swift,xcode,sorting,Arrays,Swift,Xcode,Sorting,我打赌这对你们大多数人来说都是一个非常简单的问题,所以我会尽快回答。实际上,我的Swift应用程序生成一个随机单词,我希望用户能够选择标记为1、2和3的按钮,然后将该单词保存到数组中的特定数字。稍后,包括应用程序关闭后等。用户可以查看他们分配了号码的所有单词。我知道这涉及到创建一个新类并将相应的数组放在那里,但我真的不知道从哪里开始,所以非常感谢您的帮助。抱歉,如果这不是你想要的那么清楚,你可以告诉我,我对Swift/编程相当陌生。到目前为止,我与应用程序这一部分相关的只是按钮: var cho

我打赌这对你们大多数人来说都是一个非常简单的问题,所以我会尽快回答。实际上,我的Swift应用程序生成一个随机单词,我希望用户能够选择标记为1、2和3的按钮,然后将该单词保存到数组中的特定数字。稍后,包括应用程序关闭后等。用户可以查看他们分配了号码的所有单词。我知道这涉及到创建一个新类并将相应的数组放在那里,但我真的不知道从哪里开始,所以非常感谢您的帮助。抱歉,如果这不是你想要的那么清楚,你可以告诉我,我对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"
}

谢谢

在您的ViewController中创建一个computedProperty,如果有新值,则保存该属性,并在访问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.currentWords = savedWords

我认为数组不是解决他的问题的理想方案。据我所知,随机单词必须被分配给所选的按钮。理想情况下,应该使用NSDictionary对象来保存这些随机单词。好的,我试试。BCI,我将如何实现NSDictionary来解决这类问题。多亏了他们俩you@mBlot2我编辑了我的答案,它以前是一个数组。不,它使用的是BCI建议的字典,当您说添加如下代码行时:currentWords[button1:/*selectedValue from button*/]我是否将其添加到按钮1的iAction中?我尝试过这样做,但当我尝试用用户按下另一个按钮时生成的随机生成的单词替换/*selectedValue from button*/时,它会在表达式列表中显示预期的表达式,即:currentWords[chosenEasy:\randomWord]thanks@mBlot2编辑!!请查收
self.currentWords = savedWords