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