2016-03-04 1 views
0

Обзор: Я разрабатываю свое первое приложение. Он собирает информацию о местоположении пользователя для отслеживания езды на велосипеде. Я сохраняю содержимое в файле .txt (информация о координатах и ​​информация об атрибутах). Пользователь может затем экспортировать свои данные из приложения iOS для дальнейшего анализа. Я успешно добавил функцию сохранения текстового файла для хранения упомянутой выше информации вместе с возможностью экспорта этого файла за пределы приложения.Сбор/доступ ResearchKit результаты и сохранить в файле

Проблема: Я создал опрос ResearchKit для сбора дополнительной информации атрибутов, которые могут быть привязаны к езде на велосипеде пользователей. Примеры вопросов включают в себя: , почему пользователь ездит/путешествует цели и какая погода и т. Д.). Я хотел бы добавить результаты исследования ResearchKit в текстовый файл с информацией о координатах или при необходимости создать отдельный текстовый файл. Я знаю, что мне нужно каким-то образом обратиться к задаче ORKStepResult, но я не знаком с этим процессом.

Исследование: Я искал Github для образцов приложений с использованием researchKit, но результаты очень ограничены для приложений, написанных на Swift. Мне не достаточно удобно «разработчик», чтобы читать Objective-C, а затем переводить его в Swift ... Один день! Я также посмотрел учебники от Рей Вендерлиха, но они не упоминают, как получить доступ, сохранить и экспортировать результаты опроса. Я рассмотрел другие вопросы по StackExchange, но большинство из них с подробными ответами относятся к Objective-C.

Спасибо StackExchange Ваша помощь будет принята с благодарностью!

ответ

4

В принципе, вы можете получить доступ к результирующему дереву (которое имеет ORKTaskResult obect как корень) путем внедрения метода func taskViewController(taskViewController: ORKTaskViewController, didFinishWithReason reason: ORKTaskViewControllerFinishReason, error: NSError?) в ORKTaskViewController делегата и доступе к taskViewController.result оттуда.

Затем рекурсивно перебирайте ORKTaskResult 's results, пока вы не достигнете листьев, и вы сможете получить и сохранить нужную информацию в выбранном вами формате.

См. Файл ORKResult.h для документации по различным типам результатов.


Если вы просто распечатать корень ORKTaskResult на консоль (или в текстовый файл), то рекурсивно покажет вам все результирующее дерево, хотя я думаю, что это не будет полностью подходящий формат, как эти шоу объекта имена и адреса памяти, которые вам не нужны.


Наконец, вы можете захотеть взглянуть на ORKCatalog пример проекта в официальном репозитории. Когда вы запустите приложение, у него есть Результаты вкладка, в которой отображаются результаты опроса или активности, которая была выполнена последней.

Код, который считывает и отображает результаты, находится в группе Displaying Results по проекту ORKCatalog. This - это вышеупомянутая задача task done finish, который по очереди задает результаты в контроллере представления результатов, как показано here, и который в конечном итоге обрабатывается кодом в файле ResultTableViewProviders.swift.

Однако код обработки результатов здесь немного задействован (поскольку он учитывает все разные типы результатов), и, вероятно, ваше решение было бы намного проще, если вы хотите обрабатывать только результаты определенного типа.