2016-05-13 5 views
1

最初のリサーチキットプロジェクトでは、リサーチキットの調査結果をjsonにシリアル化する必要がありました。調査回答をサーバーに送り返すには、このjsonデータが必要です。 ORKResultオブジェクトをシリアル化するには、関数ORKESerializer.JSONDataForObject(taskResult)を使用することをお勧めします。この関数は、カスタムオブジェクトを適切な有効なjsonオブジェクトに変換します。 ORKESerializerは実際にはResearchkitの一部ではありませんが、GitHubにあるORKTestというテストアプリケーションに含まれています。以下はこれを行うコードです。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) }

Attached Image for the error

いずれかがこの問題を解決する方法を知っていますか?

+0

この問題は安定したブランチで修正されています:https://github.com/ResearchKit/ResearchKit/commit/23900bed0e5582a193dd6f6f72a0cb2afd303c35 – Yuan

答えて

0

この数字によるとLinkこの問題は修正され、Githubの安定版とマージされました。

関連する問題