Ios “我们如何使用”;上下文“;使用expressionValue时(使用:context:)?

Ios “我们如何使用”;上下文“;使用expressionValue时(使用:context:)?,ios,swift,Ios,Swift,我被一个使用这种方法的func卡住了。所以我知道如何使用expressionValue(with:context:)函数,但对于我来说,上下文如何参与仍然是不透明的。也许有人有简单的例子 try traversePropertyMappings { propertyMapping, destinationName in if let valueExpression = propertyMapping.valueExpression { let context: NSMutableDictiona

我被一个使用这种方法的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,
}
 } }

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

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

抱歉,那么为什么需要“with object”参数?在其他示例中,正是“with object”参数实现了这一点。let myInt=4 let myFormulaInt=“5+4+myInt*5”let intElements=[“myInt”:myInt]let myResultInt=NSExpression(format:myFormulaInt)。expressionValueWithObject(intElements,context:nil)。integerValue println(myResultInt)//29我真的很困惑抱歉(在上面的示例中,
print(valueExpression)
显示了什么?是的,你是对的,我理解,但在更简单的示例中何时使用此上下文仍然是不透明的(