我的情况是,我正在尝试交换NSUserdefault
的值并将restore
交换为immediately
。在这里,我有一个单击按钮的动作,一旦UIButton被单击,我需要交换我的用户默认值并恢复它。例如:A值存储到B和B Values
存储到A。它应该一次又一次地工作。我正在使用相同的存储值viewcontroller
。因此,存储需要快速更新。
我的代码
// MARK: Switch Language
@IBAction func swapClick(_ sender: Any) {
// I need to do exchange value and restore it immediately
UserDefaults.standard.set(default_from_ID, forKey: "To_ID") // from here
UserDefaults.standard.set(default_to_ID, forKey: "From_ID") // to here
}
Tableview委托
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.translation_tableview.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TranslationCustomCell
cell.from_label.text = "\(default_from_Name ?? "")"
cell.to_label.text = "\(default_to_Name ?? "")"
return cell
}
答案 0 :(得分:0)
您需要先获取值,然后通过交换键设置值
@IBAction func swapClick(_ sender: Any) {
let values = (UserDefaults.standard.string(forKey: "DFrom_Name"),UserDefaults.standard.string(forKey: "DTo_Name"))
UserDefaults.standard.setValue(values.1, forKey: "DFrom_Name")
UserDefaults.standard.setValue(values.0, forKey: "DTo_Name")
self.translation_tableview.reloadData()
}
UserDefaults.standard.setValue("London", forKey: "DFrom_Name")
UserDefaults.standard.setValue("NewYork", forKey: "DTo_Name")
print(UserDefaults.standard.string(forKey: "DFrom_Name"))//Optional("London")
print(UserDefaults.standard.string(forKey: "DTo_Name"))//Optional("NewYork")
swapClick(UIButton())
print(UserDefaults.standard.string(forKey: "DFrom_Name"))//Optional("NewYork")
print(UserDefaults.standard.string(forKey: "DTo_Name"))//Optional("London")