我敢打赌这对你们大多数人来说是一个非常简单的问题,所以我会很快。本质上,我的 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.savedWords = currentWords
如果您想检索 savedWords 并将其分配给 currentWords,您可以简单地执行以下操作:
self.currentWords = savedWords
关于arrays - 按下按钮时将生成的单词保存到单词数组/列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49316149/