我正在开发一个简单的ResearchKit应用程序,它包含20个调查问题或工作步骤。如何从将调查提交到数据库的参与者那里获取答案?
我的研究发现workserializer和SQLite是解决方案的潜在部分。我忽略了如何将这些东西集成到工作解决方案中的全局视图。
在不了解数据库或从Swift传输数据的情况下启动,因此任何基本信息都将非常有用。
如何使用Swift从ORKResult中提取数据?
在哪里提取数据?或者,小型调查的标准数据库类型是什么?
最佳答案
ResearchKit没有任何现成的解决方案来存储您的结果。一般来说,开发人员的任务是遍历ORKResult
层次结构,将处理过的结果持久化以便以后访问,或者将它们发送到远程服务器。
您有几个选择:
使用NSCoding储存香草ORKTaskResult
(与他们的ORKResult
孩子一起)。这样,您可以在以后重新创建整个ORKTaskResult
层次结构来检查或处理它。
使用ORKESerializer
(如您所料)将ORKResult
s序列化为JSON格式。ORKESerializer
目前是ORKTest
单元测试的一部分,并且没有很好的文档记录。它有可能在将来被移动到ResearchKit中,但现在它完全可用。如果要将结果发送到自己的任何远程服务器,JSON格式特别有用。
您可以手动遍历ORKResult
s并将其转换为适合存储的对象,或者转换为数据库记录。如您所说,您可以使用SQLite;或您选择的其他数据库;或Core Data来持久化它们。
总之,没有推荐的或标准的方法来保存结果,这取决于您的需要。
您还可以查看官方open sourced RK apps。我认为他们使用AppCore库(位于ResearchKit的顶部)来存储任务结果(也使用Sage桥将结果发送到Sage的服务器)。但如果你的需求更简单的话,那就太过分了。
我建议您运行示例ORKCatalog
应用程序,然后检查ORKTaskResult
层次结构(您可以在应用程序本身中这样做)您将了解结果层次结构的外观。