【发布时间】:2016-03-17 14:54:14
【问题描述】:
我正在使用 ResearchKit 开发一个小型应用程序。不幸的是,我找不到足够的例子来弄清楚如何根据上一个问题的答案跳过一个问题。 我已经把下面的代码放在一起,我知道这不好,也不能工作。 我正在寻求帮助以找出问题所在。
let textChoices2 = [
ORKTextChoice(text: "Answer 1", value: 0),
ORKTextChoice(text: "Answer 2", value: 1),
ORKTextChoice(text: "Answer 3", value: 2),
ORKTextChoice(text: "Answer 4", value: 3)
]
let questAnswerFormat2: ORKTextChoiceAnswerFormat = ORKAnswerFormat.choiceAnswerFormatWithStyle(.SingleChoice, textChoices: textChoices2)
let questQuestionStep2 = ORKQuestionStep(identifier: "TextChoiceQuestionStep2", title: questQuestionStepTitle, answer: questAnswerFormat2)
//////////////////////////// Here I need help
let task: ORKNavigableOrderedTask = ORKNavigableOrderedTask(identifier: "xyz123", steps: steps)
//the identifier for ORKNavigableOrderedTask is a random number in my case, is it ok like this?
let resultSelector: ORKResultSelector = ORKResultSelector(stepIdentifier: "TextChoiceQuestionStep", resultIdentifier: "ImageChoiceQuestionStep”)
//stepIdentifier is the question based on which I decide if I want to skip the current question. Is it ok like this?
//resultIdentifier is the question to which I want to jump to. Is it ok like this?
let predicate: NSPredicate = ORKResultPredicate.predicateForChoiceQuestionResultWithResultSelector(resultSelector, expectedAnswerValue: "0”)
//expectedAnswerValue is the value of the answer for which I want to skip the current question. Is it ok like this?
let predicateRule: ORKPredicateStepNavigationRule = ORKPredicateStepNavigationRule(resultPredicatesAndDestinationStepIdentifiers:[ (predicate, "ImageChoiceQuestionStep") ])
//“ImageChoiceQuestionStep” from the row above is the question to which I want to jump to. Is it ok like this?
task.setNavigationRule(predicateRule, forTriggerStepIdentifier: "ImageChoiceQuestionStep”)
//“ImageChoiceQuestionStep” from the row above is the question to which I want to jump to. Is it ok like this?
questQuestionStep2.task = task
【问题讨论】:
-
由于您似乎是一个相对较新的用户,我认为值得一提的是,将合适的答案标记为已接受是一种很好的 StackOverflow 礼仪,因此问题不再显示为未回答。如果答案不令人满意,您可以对其发表评论,要求进一步澄清。
-
谢谢@RicardoSánchez-Sáez,你是对的。我也感谢您耐心地给我答复。在过去的几天里,我一直在做其他事情。我很快就会有机会测试您向我解释的内容并将答案标记为正确。
标签: ios iphone swift nspredicate researchkit