2017-08-15 44 views
1

在ORKStepResult的數組中找不到將該簡單答案作爲字符串的邏輯或解決方案。 它與在此之前的工作:從字符串中的ORKQuestionResult數組中獲取Researchkit中的結果?

   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 
} 
相關問題