ORKESerializer Researchkit测试类在为iOS设备构建时给出错误

时间:2016-05-13 17:02:18

标签: ios swift researchkit

在开展我的第一个研究套件项目时,我要求将研究套件调查的结果序列化为json。我需要这个json数据将调查答案发送回服务器。为了序列化ORKResult对象,建议使用函数ORKESerializer.JSONDataForObject(taskResult)。此函数将自定义对象转换为正确的有效json对象。 ORKESerializer实际上并不是Researchkit的一部分,但它包含在一个名为ORKTest的测试应用程序中,该应用程序位于GitHub上。以下是执行此操作的代码。

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文件添加到我的swift项目中,并在桥接头中导入.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) }

Attached Image for the error

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

根据此Link,此问题已修复并与Github中的稳定版本合并。