这取决于您调用save
和display
方法的顺序和时间。
-
在安装新应用时,UserDefaults
中将不会保存任何数据。因此,当您在displaySavedHistory()
中调用displaySavedFrequency()
和viewWillAppear(_:)
方法时,将不会获取任何内容,因为尚未保存任何内容。
-
现在,当您在saveHistoryTextView()
中使用saveFrequencyTextView()
和viewWillDisappear(_:)
方法保存数据,然后再次杀死并运行该应用程序时,将获取并显示保存的数据
此外,由于您将数据保存在UserDefaults
中,并且UserDefaults
被保存在sandbox
中,因此删除应用程序时数据不会持久。如果要在删除应用程序后仍保留数据,则必须将数据保存在iCloud
或keychain
等中。
,
您可以使用属性观察器执行以下操作:
var url = source.getUrl() + "#gid=" + newSheet.getSheetId();
,
一旦我以正确的频率使我的大脑进入theta状态,我就设法弄清楚了。
感谢@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()
}
本文链接:https://www.f2er.com/3154726.html