expression式中的NSExpression自定义variables

最近我发现了NSExpression类,我想知道是否有可能在expression式中评估自定义variables。

像这样的东西:

5+4+MYVAR*5 

我想用自定义Double值replace这个MYVARstring。

如果不存在,我会用循环和类似的方式去做,但是希望有一个内置的(和更快的)解决scheme。

谢谢。

 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 let myDouble = 2.5 let myFormulaDouble = "5 + 4 + myDouble * 5" let doubleElements = ["myDouble": myDouble] let myResultDouble = NSExpression(format: myFormulaDouble).expressionValueWithObject(doubleElements, context: nil).doubleValue println(myResultDouble) // 21.5 

Xcode 8 GM•Swift 3

 let myInt = 4 let myFormulaInt = "5 + 4 + myInt * 5" let intElements: [String:Int] = ["myInt": myInt] let myResultInt = NSExpression(format: myFormulaInt).expressionValue(with: intElements, context: nil) as! Int print(myResultInt) // 29 let myDouble = 2.5 let myFormulaDouble = "5 + 4 + myDouble * 5" let doubleElements: [String: Double] = ["myDouble": myDouble] let myResultDouble = NSExpression(format: myFormulaDouble).expressionValue(with: doubleElements, context: nil) as! Double print(myResultDouble) // 21.5