我们如何在使用expressionValue(with:context :)时使用“context”?

时间:2017-10-25 11:38:26

标签: ios swift

我遇到了使用此方法的func。所以我知道如何使用expressionValue(with:context :)函数,但对于我如何参与上下文仍然是不透明的。也许有人有简单的例子?

try traversePropertyMappings {
propertyMapping, destinationName in
if let valueExpression = propertyMapping.valueExpression {
let context: NSMutableDictionary = ["source": sInstance]
guard let destinationValue =
  valueExpression.expressionValue(with: sInstance,
                                  context: context) else {
newAttachment.setValue(destinationValue,
}
 } }

1 个答案:

答案 0 :(得分:1)

上下文用于将变量绑定到评估的值。 这是一个独立的例子:

let context: NSMutableDictionary = ["a": 4.0, "b": 5.0]
let expr = NSExpression(format: "$a + 2 * $b")
if let result = expr.expressionValue(with: nil, context: context) as? Double {
    print(result) // 14.0
}

在您的代码中,valueExpression包含一个“$ source”变量 在计算表达式时绑定值sInstance