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