如何在swift中临时保存用户输入数据?

Posted

技术标签:

【中文标题】如何在swift中临时保存用户输入数据?【英文标题】:How to temporarily save user input data in swift? 【发布时间】:2018-12-06 10:05:36 【问题描述】:

我有三个 ViewController,其中两个有图像和 TextFields 供用户输入,第三个是显示第一个和第二个数据并保存。

如何临时保存用户输入的数据,当用户完成所有必需的步骤后,会调用数据摘要进行查看,然后将其上传到 firebase 数据库?

我正在使用 Swift 4

【问题讨论】:

你听说过变量吗? 我知道什么变量,但我有 13 个文本字段和 6 个图像,我需要 19 个变量,我认为这不是好的代码。谢谢你的帮助:) @GHAZZWAY 你听说过收藏吗?喜欢数组还是字典? 【参考方案1】:

UserDefaults 中所有类型的数据存储

Like - Float , Double, Int , Bool, URL ...

Description here

UserDefaults.standard.set("Value", forKey: "key")

获取价值

UserDefaults.standard.string(forKey: "key")

【讨论】:

但这会一直保存数据在本地,我只想在用户完成输入后暂时保存数据,所有数据都会显示,他按下一个按钮保存在数据库中,这就是暂时的数据消失跨度> 您可以将数据存储在全局变量中,然后点击保存按钮设置数据【参考方案2】:

定义一个struct,它可以保存用户可以输入的所有数据,并且最终需要持久化。

将此结构的实例从视图控制器传递到视图控制器,每个控制器在其中填充它负责的任何字段。

在最后一个屏幕之后,结构将包含所有数据。根据需要进行处理。

以上假设用户将在一次使用您的应用时完成整个过程。如果您需要支持用户现在开始并稍后完成的能力(并且应用程序可能会在中间被终止并重新启动),那么这个基本想法仍然有效,但您需要添加代码来编码/解码结构到/从一个文件。制作你的结构Codable 并使用PropertyListEncoder/Decoder

【讨论】:

感谢您的回复,我认为这个解决方案很酷,但请原谅我需要一个示例以便我可以实现它 @GHAZZWAY:搜索“传递对象 UIViewController” 或从这里开始:***.com/questions/5210535/… @GHAZZWAY 我们不是来做你所有的工作的。这个过程的哪一部分您需要帮助?把问题分解成小块。从结构开始。然后将结构传递给每个控制器。然后在每个控制器中填充部分结构。然后继续使用完成的数据。 谢谢,但我停止将结构传递给每个控制器我是如何做到的?

以上是关于如何在swift中临时保存用户输入数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用来自另一个视图控制器swift的用户输入创建具有表视图单元格的列表

Swift UI集合视图 - 如何在Cell中显示“segued”用户输入?

处理用户输入与显示数据------------(创建本地临时文件在/temp中创建临时文件创建临时目录tee命令)

如何检查 Firebase 数据库中用户输入数据的唯一性?迅速

斯威夫特:无法弄清楚如何保存用户离开表格视图的方式

如何获取用户输入并将其存储以稍后在 swift Xcode 中搜索网站