ResearchKit没有任何开箱即用的解决方案来存储您的结果。通常,开发人员的任务是遍历ORKResult
层次结构并将处理后的结果保存以供以后访问,或者将它们发送到远程服务器。
您在这里有几个选择:
使用NSCoding存储香草ORKTaskResult
(和他们的ORKResult
孩子)。这样,您可以ORKTaskResult
在以后重新创建整个层次结构以检查或处理它。
使用(如您所料)将sORKESerializer
序列化为JSON格式。目前包含在的单元测试中,并且没有很好地记录。将来它可能会被移到ResearchKit中,但它现在完全可以使用。如果您想将结果发送到您自己的任何远程服务器,JSON 格式特别有用。ORKResult
ORKESerializer
ORKTest
您可以手动迭代ORKResult
s 并将其转换为适合存储的对象,或转换为数据库记录。正如您所说,您可以使用SQLite持久化它们;或您选择的其他数据库;或核心数据。
总而言之,没有推荐或标准的方法来持久化结果,这取决于您的需求。
您还可以查看官方开源的 RK 应用程序。我认为他们利用AppCore库(位于ResearchKit之上)来存储任务结果(并且还使用Sage Bridge将结果发送到Sage的服务器)。但是,如果您的需求更简单,那可能会有些过火。
我建议您运行示例ORKCatalog
应用程序,然后检查ORKTaskResult
层次结构(您可以在应用程序本身内执行此操作)。您将了解结果层次结构的外观。