При работе над моим первым исследовательским проектом я получил требование о сериализации результатов опроса Researchkit в json. Мне нужны эти данные json для отправки ответов опроса на сервер. Для сериализации объекта ORKResult рекомендуется использовать функцию ORKESerializer.JSONDataForObject (taskResult). Эта функция преобразует пользовательский объект в правильный действительный объект json. ORKESerializer на самом деле не является частью Researchkit, но он был включен в тестовое приложение под названием ORKTest, которое находится на GitHub. Ниже приведен код, который делает это.Класс теста ORKESerializer Researchkit, выдающий ошибку при построении устройства iOS
extension ViewController : ORKTaskViewControllerDelegate {
func taskViewController(taskViewController: ORKTaskViewController, didFinishWithReason reason: ORKTaskViewControllerFinishReason, error: NSError?) {
switch reason {
case .Completed:
let taskResult = taskViewController.result
let jsonData = try! ORKESerializer.JSONDataForObject(taskResult)
if let jsonString = NSString(data: jsonData, encoding: NSUTF8StringEncoding) {
print(jsonString)
}
break
case .Failed, .Discarded, .Saved:
break
}
//Handle results with taskViewController.result
taskViewController.dismissViewControllerAnimated(true, completion: nil)
}
Теперь этот код отлично работает во время работы в симуляторе. Но он дает ошибку при попытке построить для устройства ios. Я добавил файлы ORKESerializer.h и .m в мой быстрый проект, а также импортировал .h в заголовок заголовка. Ниже приведена ошибка, которую он бросает во время компиляции.
{ Undefined symbols for architecture armv7: "_OBJC_CLASS_$_ORKLocation", referenced from: objc-class-ref in ORKESerialization.o "_OBJC_CLASS_$_ORKConfirmTextAnswerFormat", referenced from: objc-class-ref in ORKESerialization.o ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation) }
знает любой, как это исправить?
Эта проблема исправлена в ветке «Стабильный»: https://github.com/ResearchKit/ResearchKit/commit/23900bed0e5582a193dd6f6f72a0cb2afd303c35 – Yuan