从字符串中的 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 中的结果?的主要内容,如果未能解决你的问题,请参考以下文章