swift - 使用什么数据文件可以轻松导入到带有 Swift 的 iOS 应用程序中?

标签 swift database

我正在创建一个从列表(当前存储为 Numbers 文档)中生成随机问题的应用程序。一旦用户回答了该问题,唯一的问题 ID、问题本身及其答案就会存储在核心数据中。

当用户请求一个新问题时,系统会从原始文档中随机生成一个问题,然后将其与核心数据交叉引用,以确定用户之前是否回答过该问题。

目前我还没有包括我的应用程序代码,因为我并不是真的在寻找特定的编码帮助。作为代码世界的新手,我只是在寻找正确方向的插入力,让我去做更多的学习。

JSON 看起来是可行的,但我了解得越多,就越觉得它是关于应用程序与网站通信的。我真的不希望任何人都可以访问这些问题,所以将它们放在我的网站上可能行不通?我可以使用应用程序中的本地文件来完成吗?也许是 CSV?

我预计随着我添加更多问题,文件可能会变得相当大 - 所以我不确定这是否会改变一切?

提前致谢,如果这不是在这里提问的正确方式,我们深表歉意。

最佳答案

I'm just looking for a nudge in the right direction for me to go and do more studying.

有很多选项可以解决您的问题。每个选项都取决于您的技能、时间以及您想要制作的应用程序是否需要解决方案。最终由您决定哪种解决方案可以解决您的问题。有几个选项:

  1. 创建自己的后端
  2. 在您的应用程序中有一个本地文件
  3. 或使用第三方服务,如 Firebase .

每个选项都有其自身的优势。仅举几例:

本地文件:

您可以拥有几乎任何格式(XML、JSON、.plist)等的本地文件。缺点是您的应用不是动态的 - 您必须手动不断向该文件添加文本并通过App Store 让您的用户看到这些变化。如果您要使用这种方法,我建议您使用保存在项目中的 .plist 或 JSON 文件。如何正确实现这一点超出了问题的范围,但有很多教程可以帮助您入门。

您可以将数据放在 .plist 文件中。这只不过是一个包含键值数据的字典(与 JSON 的原理相同,每个键都有一个值)。一个例子:

.plist

question1 是 String 类型的键,包含值“你今天好吗”。从这个 .plist 中读取起来很容易,因为它与 JSON 的原理相同。

此外,JSON 只是一种格式,它经常用于与网站通信,但不仅限于网站。

自定义后端

这意味着您创建了一个后端,您的应用可以在该后端上进行通信。您必须托管后端,在后端编写逻辑/代码等等​​。这可能非常耗时,尤其是当您的应用程序不是那么大/要求不高时。除非您有经验、时间、耐心并且需要此解决方案,否则我不会推荐此方法。

第三方

这可能是一个不错的解决方案。使用像 Firebase 这样的第三方服务意味着您可以在线获取数据。 Firebase 库已经过良好测试,并提供了很好的文档来帮助您入门。它安全、快速、简单,但.. 了解它的工作原理确实需要一点时间 - 但最终结果是您拥有一个动态应用程序,您可以在其中添加、删除、编辑问题等。如果您愿意,可以保护此数据 - 这意味着只有经过身份验证的用户才能访问此数据(没有其他人会监视您的数据:))

I don't really want the questions to be accessed by just anyone, so putting them on my website might not work?

阅读自定义后端第三方

Could I do it with a file local in the app?

是的。读取本地文件

maybe a CSV?

这是可能的,但我不会推荐它,但这是个人意见。我发现它已经过时并且比 JSON 更难使用。

I'm anticipating the file may become quite big as I add more questions - so I'm not sure if that changes things?

什么是大文件?如今,读取一个“大”JSON 文件最多可能不过是几 MB。您的手机会立即读取此信息。这对您的手机或应用程序来说不是问题。

关于swift - 使用什么数据文件可以轻松导入到带有 Swift 的 iOS 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43099563/

相关文章:

MySQL 多对多关系的限制

ruby-on-rails - 将数据从 JSON api 保存到 Ruby on Rails DB

mysql - Pharo Smalltalk 和 mySql

database - 设计具有相似但不同模型的数据库

ios - 在 swift 类中实现 AsyncSocket 回调

ios - 如何捕获 func LocationManager 的 GPS 数据?

ios - 使用 AVAudioSession 更改音频输入源会导致崩溃

ios - Mapkit 标注附件按钮激活

objective-c - 如何删除具有权限的文件

json - REST API 状态是整数还是字符串?