【问题标题】:I am having issues with predicateForConsent function of ORKResultPredicate我遇到了 ORKResultPredicate 的 predicateForConsent 函数的问题
【发布时间】:2016-12-06 14:52:56
【问题描述】:

当我点击同意按钮时,它应该转到同意完成步骤,但它转到同意不同意步骤。请问哪位大神指点一下是什么问题?

let consentTask = ORKNavigableOrderedTask(identifier: String(describing:Identifier.consentTask), steps: [reviewConsentStep, disAgreeStep, completionStep])

resultSelector = ORKResultSelector(
    resultIdentifier: String(
        describing: Identifier.consentReviewStep))
let predicateAgree = ORKResultPredicate.predicateForConsent(
    with: resultSelector, didConsent: true)

let agreePredicateRule = ORKPredicateStepNavigationRule(
    resultPredicatesAndDestinationStepIdentifiers: [
        (predicateAgree,
         String(describing: Identifier.consentCompletionStep))])

consentTask.setNavigationRule(
    agreePredicateRule,
    forTriggerStepIdentifier:String(
        describing:Identifier.consentReviewStep))

let consentDirectRule = ORKDirectStepNavigationRule(
    destinationStepIdentifier: ORKNullStepIdentifier)
consentTask.setNavigationRule(
    consentDirectRule,
    forTriggerStepIdentifier:String(
        describing:Identifier.consentDisagreeStep))

【问题讨论】:

  • 你能颠倒这个添加Rule的顺序并检查一下吗?
  • 所以我把 directRule 移到 predicateRule 上面,但是没有用。

标签: ios swift researchkit


【解决方案1】:

问题在于传递给+predicateForConsentWithResultSelector:didConsent: 的resultSelector 必须提供所需的步骤标识符(stepIdentifier 参数)和所需的签名标识符(resultIdentifier 参数)。

代替:

let resultSelector = ORKResultSelector(resultIdentifier:String(describing: Identifier.consentReviewStep))
let predicateAgree = ORKResultPredicate.predicateForConsent(with: resultSelector, didConsent: true)

应该是:

let resultSelector = ORKResultSelector(stepIdentifier: String(describing: Identifier.consentReviewStep), resultIdentifier: signature.identifier)
let predicateAgree = ORKResultPredicate.predicateForConsent(with: resultSelector, didConsent: true)

【讨论】:

    猜你喜欢
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多