Apple ResearchKit:如何从 ORKResult 中提取信息?第一次程序员

Apple ResearchKit: how to extract information from ORKResult? First time programmer

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

我的研究发现 ORKESerializer 和 SQLite 作为解决方案的潜在部分。我缺少关于如何将这些东西集成到工作解决方案中的全局视图。

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

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

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

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

这里有几个选项:

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

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

  • 可以手动遍历ORKResult,转换成适合存储的objects,或者存入数据库记录。正如您所说,您可以使用 SQLite 来保存它们;或您选择的其他数据库;或 Core Data.

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

你也可以看看官方open sourced RK apps。我认为他们利用 AppCore 库(位于 ResearchKit 之上)来存储任务结果(并且还使用 Sage Bridge 将结果发送到 Sage 的服务器)。但如果您的需求更简单,那可能就太过分了。


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