ios - 如何将数据从两个 UITextViews 保存到 UserDefaults
问题描述
对于每个UITextView
using UserDefaults
,我都制作了一个保存功能和一个显示功能。
添加text
的内容需要在添加时显示,保存后再次打开应用程序时再次显示。
如果我安装的应用程序只有保存功能,请退出应用程序并添加要显示的功能,然后重新安装而不删除已安装的应用程序,一切正常。
如果我安装添加了这两个功能的应用程序,它就不起作用。
必须有一个简单的解决方案,我显然做错了什么。
来自一个的数据textView
用于计算结果,然后显示在另一个上textView
。所有数据都是用其他功能添加的,用户没有。
numberHistoryView.isEditable = false
numberHistoryView.isSelectable = false
func saveHistoryTextView()
{
let defaults = UserDefaults.standard
let numberHistory = numberHistoryView.text
defaults.set(numberHistory, forKey: "combos")
}
func displaySavedHistory()
{
let defaults = UserDefaults.standard
let savedCombos = defaults.object(forKey: "combos") as? String ?? ""
numberHistoryView.text = savedCombos
}
func saveFrequencyTextView()
{
let defaults = UserDefaults.standard
let numberFrequency = numberFrequencyCount.text
defaults.set(numberFrequency, forKey: "frequency")
}
func displaySavedFrequency()
{
let defaults = UserDefaults.standard
let savedFrequency = defaults.object(forKey: "frequency") as? String ?? ""
numberFrequencyCount.text = savedFrequency
}
override func viewWillDisappear(_ animated: Bool)
{
saveHistoryTextView()
saveFrequencyTextView()
}
override func viewWillAppear(_ animated: Bool)
{
displaySavedHistory()
displaySavedFrequency()
}
解决方案
一旦我以正确的频率将大脑置于θ状态,我就设法弄清楚了。
感谢@Naresh 和所有其他贡献者的帮助,因为您可能对我有所帮助。
该解决方案基本上只需要一个简单的 if 语句。
现在一切正常。
func saveHistoryTextView()
{
if numberHistoryView.text?.count != nil
{
let defaults = UserDefaults.standard
defaults.set(numberHistoryView.text!, forKey: "combos")
}
}
func displaySavedHistory()
{
let defaults = UserDefaults.standard
if let savedCombos = defaults.string(forKey: "combos")
{
numberHistoryView.text = savedCombos
}
}
func saveFrequencyTextView()
{
if numberFrequencyCount.text?.count != nil
{
let defaults = UserDefaults.standard
defaults.set(numberFrequencyCount.text!, forKey: "frequency")
}
}
func displaySavedFrequency()
{
let defaults = UserDefaults.standard
if let savedFrequency = defaults.string(forKey: "frequency")
{
numberFrequencyCount.text = savedFrequency
}
}
}
override func viewWillDisappear(_ animated: Bool)
{
saveHistoryTextView()
saveFrequencyTextView()
}
override func viewWillAppear(_ animated: Bool)
{
displaySavedHistory()
displaySavedFrequency()
}
推荐阅读
- javascript - 分配给 onreadystatechange 的方法怎么执行得这么快?
- python - 如何在 Tornado 中使用 OpenID 进行身份验证?
- typescript - 打字稿:文字类型的用户定义类型保护?
- r - 如何从 R 并行运行相同的 NetLogo 模拟?
- c# - 将布尔值绑定到按钮可见性
- c# - 我们如何在 ASP.Net Core 中使用 HttpClient?
- reactjs - TypeError:fetch.mockResponse 不是函数
- angular - Angular:getUserMedia() 不再适用于不安全的来源
- owasp - OWASP | 扎普 | SQL 注入 | 扫描报告
- python - 检查列表中的元素是否在 django 模板中的另一个列表中