0

我正在开发一个简单的 ResearchKit 应用程序,它有 20 个调查问题或 ORKSteps。我如何从将调查提交到数据库的参与者那里获得答案?

我的研究发现 ORKESerializer 和 SQLite 是解决方案的潜在组成部分。我错过了如何将这些东西集成到工作解决方案中的全局视图。

在不了解数据库或从 Swift 传输数据的情况下开始,因此任何基本信息都会非常有帮助。

  1. 如何使用 Swift 从 ORKResult 中提取数据?
  2. 我在哪里提取数据?或者,小型调查的标准数据库类型是什么?
4

2 回答 2

4

ResearchKit没有任何开箱即用的解决方案来存储您的结果。通常,开发人员的任务是遍历ORKResult层次结构并将处理后的结果保存以供以后访问,或者将它们发送到远程服务器。

您在这里有几个选择:

  • 使用NSCoding存储香草ORKTaskResult(和他们的ORKResult孩子)。这样,您可以ORKTaskResult在以后重新创建整个层次结构以检查或处理它。

  • 使用(如您所料)将sORKESerializer序列化为JSON格式。目前包含在的单元测试中,并且没有很好地记录。将来它可能会被移到ResearchKit中,但它现在完全可以使用。如果您想将结果发送到您自己的任何远程服务器,JSON 格式特别有用ORKResultORKESerializerORKTest

  • 您可以手动迭代ORKResults 并将其转换为适合存储的对象,或转换为数据库记录。正如您所说,您可以使用SQLite持久化它们;或您选择的其他数据库;或核心数据

总而言之,没有推荐或标准的方法来持久化结果,这取决于您的需求。

您还可以查看官方开源的 RK 应用程序。我认为他们利用AppCore库(位于ResearchKit之上)来存储任务结果(并且还使用Sage Bridge将结果发送到Sage的服务器)。但是,如果您的需求更简单,那可能会有些过火。


我建议您运行示例ORKCatalog应用程序,然后检查ORKTaskResult层次结构(您可以在应用程序本身内执行此操作)。您将了解结果层次结构的外观。

于 2015-07-28T13:36:45.707 回答
-2

我没有使用 Research Kit 的经验,但作为数据库,您可以使用 sqlite。stephencelis为 swift 制作了一个很棒的包装器,您可以使用它。

于 2015-07-28T00:02:01.270 回答