Swift - 存储和检索数据 [关闭]

Posted

技术标签:

【中文标题】Swift - 存储和检索数据 [关闭]【英文标题】:Swift - Storing and retrieving data [closed] 【发布时间】:2015-06-03 02:45:26 【问题描述】:

我的疑问是:如何在应用程序中存储一些数据(例如字符串和图像),然后正确检索这些数据? 我读过一些关于它的东西,但我不太明白(随便你叫我什么)。

我的想法是我有一些 ViewController,并且在每个 ViewController 中插入一些数据,例如名称、图像、文本,当我点击一个单元格时,我想要一个最终的 ViewController 来检索所有这些数据。我几乎完成了所有工作,只是我不知道如何在最后一个 ViewController 中检索所有这些数据。我该怎么做?代表模式?使用 CoreData?

编辑

我有 4 个 ViewController。第一个有一个 tableView 将存储一些配方名称。第二个,我将输入食谱的名称并从 photoLibrary 中选择一张图片。第二个 ViewController 有两个 segues:一个到第三个 ViewController,我将在其中写一些食谱的成分;还有第四个,我将在其中发短信给食谱的 HowToDo。当我向所有成分和 HowToDo 发送文本时,应用程序会转到第二个 ViewController,然后当我按“添加”时,它会转到第一个 ViewController,并且单元格会收到食谱的名称。然后,当我点击单元格时,它会转到第五个 ViewController,它将显示详细信息(名称、图像、tableView 中列出的成分和 HowToDo)。

我的疑问是:如何从这些 ViewController 中检索所有数据?

【问题讨论】:

NSUserDefaults 很可能是您要查找的内容。这是一个示例:Example 和 Apple Doc's。 这个问题太笼统了,不够详细。您需要提供有关控制器层次结构的一些信息,以及您是否希望这些数据在应用程序启动之间保持不变。 抱歉,我不能比这更具体,因为我还不能发布图片:(我正在尝试正如 Daniel Storm 所说的那样。 @DanielStorm 我不知道 NSUserDefaults 是否是我所追求的。我读到有人说它不适用于存储图像。你怎么看?我应该遵循一些 CoreData 教程吗? 我正在寻找的是某种方式来存储每个 ViewController 中设置的信息(图像、名称、文本和表格视图)并能够在最后一个 VC 中检索这些数据。有什么想法吗? 【参考方案1】:

您有 4 个选项:

1) NSUserDefaults - 适用于少量数据

2) 使用 NSArchiver 存储在文件系统中。

3) SqlLite - 适用于大量数据。

4) CoreData - 存储对象图。非常先进但学习曲线陡峭。

有关所有这些方法的详细信息,请观看以下视频的持久性部分: https://itunesu.itunes.apple.com/WebObjects/LZDirectory.woa/ra/directory/courses/961180099/feed

【讨论】:

我在每个单元格中存储少量数据,但它会存储太多单元格并存储信息,所以我认为 NSUserDefaults 在这种情况下不好。我认为 CoreData 确实是解决方案。感谢您的视频链接。明天我会尝试给你一个反馈! 我认为 sqlite 适合您的用例。但是将 sqlite 与 swift 一起使用是很棘手的。所以也许你应该试试 Core Data。 我设法使用 CoreData 保存了一些文本,但我找不到存储从照片库中挑选的图像的方法。我读到它必须转换为 NSDate 但我不知道如何正确地做到这一点。有什么想法吗?

以上是关于Swift - 存储和检索数据 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Swift 中的 iOS 私有/公共数据管理和存储

为 iOS 应用程序存储数据的最佳方法? [关闭]

检索存储在 childByAutoId() 参考 (Swift) 中的特定 Firebase 数据

(Swift) 将数组存储和检索到 NSUserDefaults

您是不是能够跨不同的视图控制器/.swift 文件检索存储在 UserDefaults 中的数据?

通过 Swift 在 iPhone (iOS) 开发中存储/检索用户数据(读/写文件)的正确方法是啥?