【问题标题】:How to store form data in a swift app如何在 swift 应用程序中存储表单数据
【发布时间】:2015-08-31 18:40:45
【问题描述】:

我正在开发我的第一个应用程序,我需要一些帮助来了解我需要什么样的数据存储。我熟悉 PHP、SQL 和数据库,但我不知道从哪里开始这个项目。

该应用程序几乎是一个包含文本字段、选择器和上传图像的基本表单。最后,用户将按下提交,他们的所有数据将通过电子邮件发送。

存储数据的最佳方式是什么,以便用户可以转到之前的屏幕并保留之前输入的信息。那么在他们按下提交以通过电子邮件发送数据后,存储数据的最佳方式是什么?,

非常感谢您的帮助!

【问题讨论】:

标签: ios xcode swift core-data


【解决方案1】:

如果只是为了提交而存储一次的表单数据,为简单起见,我建议您将其填充到可以从不同视图访问的全局字典中。 Swift 通过添加一个空的 swift 文件并在顶部定义您的字典使这变得简单:

var myFormData: [String: AnyObject]() 

您现在可以在应用程序的任何位置访问“myFormData”表单,从中添加和删除内容。

由于导航堆栈的工作方式,您在技术上不应该需要“重新加载以前的视图”。你回去的任何东西都应该保存它的信息。

如果您确实需要保存数据以允许用户关闭应用程序,然后在很久以后从他们离开的地方继续,那么我建议您简单地将您的字典踢到 NSUserDefaults。听起来好像不需要涉及数据库。

【讨论】:

  • 我在视图控制器之间使用 segues,并且它们“以模态方式存在”我不确定这是否是一个问题,但在视图控制器之间移动时我的数据正在删除。如果我将一个文本字段放在一个上并转到下一个视图然后返回数据就消失了。我应该使用特殊的转场吗?
  • 您是否在“viewDidAppear”或其他内容上清除它,因为即使使用模式,您也应该能够显示并关闭它,并且仍然将数据保留在原始视图中。如果所有其他方法都失败了,我想只需手动重新加载数据(也就是使用您在 viewDidAppear 上保存的数据设置 UI 元素值)就可以了。
【解决方案2】:

你可以使用一个名为NSUserDefaults的类

var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults() //make an instance
defaults.setObject("Bob", forKey: "myName") //storing a value 
defaults.synchronize() //synchronize data 
println(defaults.objectForKey("myName")!) //retrieve the data 

【讨论】:

  • 太棒了,谢谢!我想我将使用它并使用 MFMailComposeViewController 在电子邮件中发送所有内容
  • 我相信MFMailComposeViewController 将要求用户在发送前确认并单击显示电子邮件预览的发送按钮。如果您想跳过所有这些并在用户单击提交后自动执行所有操作,并将数据通过 http 请求发送到 php 服务器,发送到使用 mail() 函数的小型 php scipt。
猜你喜欢
  • 1970-01-01
  • 2015-11-25
  • 2016-12-19
  • 2014-10-26
  • 2016-10-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
相关资源
最近更新 更多