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

Posted

技术标签:

【中文标题】从字符串中的 ORKQuestionResult 数组中获取 Researchkit 中的结果?【英文标题】:Take a result in Researchkit from array of ORKQuestionResult in a string? 【发布时间】:2018-01-23 10:10:06 【问题描述】:

在 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
    )>

【问题讨论】:

【参考方案1】:

最好将结果对象转换为您期望的特定问题结果类型。这将使您能够访问各种子类的类型安全和更方便的属性。例如,如果您希望它是 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

【讨论】:

以上是关于从字符串中的 ORKQuestionResult 数组中获取 Researchkit 中的结果?的主要内容,如果未能解决你的问题,请参考以下文章

从 JAVA 中的字符串(从 url 类型更改)中删除尾部斜杠

如何从Java中的字符串中删除nul字符(\ 0)

从Python中的字符串中删除所有非数字字符

从R中的字符串中删除所有特殊字符?

如何从 Oracle 中的字符串中获取唯一字符?

如何从列表中的字符串末尾删除 '\n'? [复制]