我遇到了使用此方法的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,
}
} }
答案 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
。