swift - 从字符串中的 ORKQuestionResult 数组中获取 Researchkit 中的结果?

标签 swift researchkit

在 ORKStepResult 的数组中找不到将简单答案作为字符串的逻辑或解决方案。 它以前是这样工作的:

                for stepResults in taskViewController.result.results! as! [ORKStepResult]  {
                for result in stepResults.results! {
                    switch result.identifier {
                    case "themaQuestionStep":
                        if let questionResult = result as? ORKQuestionResult {
                            questionResultThema  = String(questionResult.answer?.objectAtIndex(0))
                        }

经过一段时间和更新(swift & researchkit),它没有。 这条线让我发疯是这条线:

questionResultThema  = String(questionResult.answer?.objectAtIndex(0))

如果我这样做:

questionResultThema  = String(describing: questionResult.answer)

它给了我正确的回应,但在一个数组中:

    (
        6
    )>

最佳答案

最好将结果对象转换为您期望的特定问题结果类型。这将使您能够访问各种子类的类型安全和更方便的属性。例如,如果您希望它是一个 ORKTextQuestionResult:

if let questionResult = result as? ORKTextQuestionResult {
    questionResultThema = questionResult.textAnswer
}

另一个例子(猜测为什么 questionResult.answer 是一个数组)。对于 ORKChoiceQuestionResult,您可以这样做:

if let questionResult = result as? ORKChoiceQuestionResult,
    let answer = questionResult.choiceAnswers.first as? String {
    questionResultThema = answer
}

关于swift - 从字符串中的 ORKQuestionResult 数组中获取 Researchkit 中的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45693686/

相关文章:

swift - 按子时间戳对 tableviewcell 进行排序

ios - PageView 中 subview 之间的条件更改

ios - Researchkit:如何从 UIWebView 手动切换到下一步

xcode - 为什么 xcode 7.1.1 上的 ResearchKit 只允许我询问每种问题类型的一种类型?

swift - 在研究包中保存电子邮件同意文档(swift 3.1)

ios - 使用 WKWebView 创建自定义 ORKStep

ios - 使用 swift 更改 Storyboard选项卡栏图标

objective-c - 如何在 macOS 上取消反斜杠?

ios - DispatchQueue 在 Swift 中与 main.sync 崩溃

swift - 如何在 ResearchKit 中显示图像网格