从我的表单中的字段中保存数据并通过在我的主视图控制器中列出主键来检索它们?

Posted

技术标签:

【中文标题】从我的表单中的字段中保存数据并通过在我的主视图控制器中列出主键来检索它们?【英文标题】:Saving data from fields in my form and retrieving them by listing out the main key in my main viewcontroller? 【发布时间】:2015-07-23 00:02:38 【问题描述】:

我在学校学习 ios,但似乎无法完全理解编码。这是我最终项目需要做的事情。因此,我想在这里寻求您的帮助和指导......我有点掌握了我希望我的应用程序如何运行的概念,以及如何创建 GUI(可能),但需要关于它的编码和数据持久性。 假设我的主视图控制器是一个最初为空的表格视图,但如果我单击添加按钮,它将引导我进入一个表单,您可以在其中填写一个人的姓名并说出他们的分数。然后,当您保存并返回主视图时,会列出此人的姓名。您可以通过点击名称添加更多人或编辑一个人(它会让您返回到可以编辑分数等的表单)。

提前致谢! (我确实修改了很多次我的笔记,但我仍然无法得到它>_

【问题讨论】:

您是在询问如何对表格视图和表单等进行编程吗?如果您只需要持久性方面的帮助,请查看如何读取和写入 plist。 这听起来非常尴尬,但我需要所有人的帮助......但请给我一点时间。有人给了我一个练习。我正在努力工作,看看我是否可以从那里去任何地方。 (虽然有问题)会再来问是不是真的没救了…… @Silv,研究进展如何?我只是问 bc 我可以为你提交一个明确的答案 bc 我一直用 plist 这样做。好吧,现在我使用 SQL,但我用数组和字典完成了这一切,这一切看起来都很有建设性:) 只是想知道一个解释清楚的答案是否仍然对你有帮助:3 @user1967709 是的!类似的事情 :) 恐怕我的情况不太好。我想把一切都搞砸了>_ 当然!(:只是想确保我不会解释您的课程或其他内容中没有的东西,但是哦,好吧:3 【参考方案1】:

查看此 gitHub commit 或 download zip 以了解该项目的全部内容。我希望 cmets 对这个项目有所帮助。

好的,我通常如何完成这样的情况如下:

    创建单例: 包含返回文件路径以保存和打开文件的方法。 +returnContentsOfDatabase+ returnFormattedPersonForArray: 等其他方法如果保存在其他位置,则会节省重复。 向项目中添加前缀文件:拥有此文件可以避免像从单例中那样重复导入。你可以查看这个q&a 看看我是如何添加这个的。很有帮助 创建了一个 CategoryClasses 文件:我发现这个方法非常有助于防止像 [arrayPerson objectAtIndex: 0]; //returning the name 这样的代码,但是这看起来不是更好吗 [arrayPerson objectPerson_name]; //returning the name, without having to remember the index number。当您添加新的东西(例如年龄、isMale 和其他信息以保存每个人)时,这也节省了 查找和替换值。您只需在一处更改代码!查看此q&a,了解如何跟进此问题 创建客户端: 接下来我开始创建将使用此新代码的实现;带有表格的视图控制器。通过将数据加载到我称为 arrayTable 的数组中,然后在每个单元格中打印它 创建 xib 以管理添加和更新:这部分很重要。我创建了一个简单的 UIViewController,称为 RecordEditorViewController,我创建了一个 init 方法来将数组传递到此视图并传递此视图将要执行的选项;添加新记录或更新现有记录。我使用枚举来创建 CTRecordAddingCTRecordModify 值。对我来说,这只会创建更具可读性的代码。 最后格式化数据:这个让我很难过,因为我已经有一段时间没有使用数组来保存数据了。但是当您将数据从 plist 加载到表中并单击一行来修改它时,您必须保存该数组的索引以及它在 plist 文件中的来源。假设您点击了第二行,您将保存 index = 2。所以我在 Library.h 文件中声明了这个函数+returnFormattedPersonForArray:。当你保存一个已经存在的记录时,你会使用这个索引。在 RecordEditorViewController 中,在方法 pressRightNav: 中,当option == CTRecordModify 时,您必须记住删除保存在数组中的索引。您不需要将该号码保存在数据文件中。因此,您可以通过调用 -removeLastObject 将其删除。因为索引是作为最后一个对象保存的,所以你替换它。

我希望这对你的要求有所帮助,@Silv

【讨论】:

整洁! @silv,很高兴这有帮助,抱歉等待 D:

以上是关于从我的表单中的字段中保存数据并通过在我的主视图控制器中列出主键来检索它们?的主要内容,如果未能解决你的问题,请参考以下文章

我可以依赖 sql 视图中的字段顺序吗?

视图控制器仅在第一次保存到 coredata 时填写我的表单

iOS - Facebook 单点登录 - 从我的视图控制器

html 表单返回空对象而不是输入数据| Vue

为啥我的 html 表单中的数据没有提交?

如何从我的主视图控制器访问 UIView 中的 let 语句?